捕获常量之间的所有内容

时间:2014-03-19 18:24:34

标签: javascript regex

我希望捕获User.的每个实例与空格之间的所有内容,包括User.

所以给出了一个

的测试字符串
psdojfsdf User.sdoinwpoiev.spoinwelsdknonfsjfnw ldnkfwwdf sdf User.sdoinffon.ribwgg 

我希望它能够捕获User.sdoinwpoiev.spoinwelsdknonfsjfnwUser.sdoinffon.ribwgg

我已经走到了这一步:/(User\..*)\s/,但这会抓住所有内容直到最后一个空格。

3 个答案:

答案 0 :(得分:2)

我认为最好的方式是告诉它除了空间而不是一切之外的所有东西。这给了:

/(User\.\S*)/

另一种选择是使用非贪婪的比赛,但我认为不太清楚:

/(User\..*?)\s/

答案 1 :(得分:1)

使用非贪婪的量词:

/(User\..*?)\s/

有关重复操作符贪婪的详细信息,请参阅regular-expressions.info

请注意,如果单词在输入字符串的末尾结束,如果结尾没有空格,则不会起作用。 Coenwulf的答案可能会更好,因为它没有这个问题。

答案 2 :(得分:1)

使用*?非贪婪零或更多

/User\.[^   \s]*?/g

此外,如果你想强迫它在点和空间之间有某种东西

/User\.[^   \s]+?/g

或者如果您希望它是字母数字

/User\.[a-zA-Z_$]+?[a-zA-Z_$0-9]*?( |   |\s)/g

如果要允许点和属性标识符之间的换行符

/User\.[a-zA-Z_$]+?[a-zA-Z_$0-9]*?(\n| |    |\s)/gm