我想在字符串中找到特定的模式。
模式:(\{\$.+\$\})
匹配示例:{$ test $}
我遇到的问题是文本在同一行上有 2 个匹配项。它返回一个匹配项。示例:这是一个 {$ test $} 内容 {$ another test $}
这将返回 1 个匹配项:{$ test $} content {$ another test $}
它应该返回 2 个匹配项:
{$ test $}
和 {$ another test $}
注意:我使用的是 Javascript
最佳答案
问题是当您使用 .+
时,您的正则表达式 (\{\$.+\$\})
本质上是贪婪的,这就是它匹配最长匹配的原因{$
和 }$
。
要解决此问题,请使您的正则表达式非贪婪:
(\{\$.+?\$\})
或者更好地使用否定正则表达式:
(\{\$[^$]+\$\})
RegEx Demo
关于javascript - 在同一行中多次匹配字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126797/