我希望捕获User.
的每个实例与空格之间的所有内容,包括User.
所以给出了一个
的测试字符串psdojfsdf User.sdoinwpoiev.spoinwelsdknonfsjfnw ldnkfwwdf sdf User.sdoinffon.ribwgg
我希望它能够捕获User.sdoinwpoiev.spoinwelsdknonfsjfnw
和User.sdoinffon.ribwgg
我已经走到了这一步:/(User\..*)\s/
,但这会抓住所有内容直到最后一个空格。
答案 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