学习RegEx,是否有可能在*选择后收集数据?

时间:2012-03-04 21:01:10

标签: javascript jquery regex

例如,如果我有这个字符串:

"color=green&animal=panda"

我是否可以使用正则表达式,返回green,因为它位于color=之后?

3 个答案:

答案 0 :(得分:2)

由于JavaScript 支持后台(不幸),您只能通过包含前面的子字符串来实现。组green,并参考该组。

var string = "color=green&animal=panda";
var pattern = /color=(green)/;
var match = pattern.exec(string);
var wantedstring = match[1];

前瞻确实存在,因此以下内容可用于匹配“绿色”,但不能“绿色”:

var pattern = /color=(green)(?=&|$)/;

答案 1 :(得分:1)

当然:

"color=green&animal=panda".replace(/.*color=(.+?)&.*/, '$1') === 'green';

该模式提取color=之后的任何字符,后跟一个&符号。

答案 2 :(得分:0)

是的,这是可能的。我们称之为匹配组。 这是你的正则表达式:

/color=(.+?)(?:&|#|$)/

它将匹配括号之间的所有内容。在这种情况下,字符串.+之后的任何内容(color=)直到第一个&字符

正则表达式可以是/color=([^&]+)/,请参阅Tomalak评论以获得解释:)