2011-04-22 16 views
1

我由一个字符在这种格式分隔的键值对的字符串:正则表达式的字符串中的分隔键值对吗?

key1=value2&key2=value2& ... &keyN=valueN 

现在,我每两场比赛不安全假设使用此正则表达式是一个键值:

[^=&]+ 

有没有更安全的方法来将这些值拉出来?

+5

是的,使用查询字符串分析器。 – BoltClock 2011-04-22 19:26:20

+0

哪种语言,以及您对键/值的内容有何限制? – 2011-04-22 19:26:36

回答

0

如果你使用PHP,我可能会尝试这样的事:

preg_match_all('/(?:^|&)([^=&]+)=([^=&]+)(?:&|$)/', $string, $matches); 

对于每场比赛,1应该是关键和2应该是值。

我现在无法测试这个位置,但看看它是否有效。

+4

我会使用'parse_str($ string,$ matches);'而不是(请参阅我上面的评论)。 – BoltClock 2011-04-22 19:32:36

+0

我甚至没有意识到它有一个功能。这看起来更好。 – Compeek 2011-04-22 19:33:59

+0

PHP有几乎所有的功能* :) – BoltClock 2011-04-22 19:34:36

相关问题