javascript - 在同一行中多次匹配字符串模式

标签 javascript regex

我想在字符串中找到特定的模式。

模式:(\{\$.+\$\})
匹配示例:{$ 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/

相关文章:

javascript - 解析客户端javascript : Query to select only objectId from pointer

javascript - 我如何在我的网站上使用 jquery?

regex - 正则表达式用链接替换单词

c# - 从文本中提取关键字并排除单词

regex - Vim 正则表达式捕获组 [bau -> byau : ceu -> cyeu]

regex - 用perl分割一个带有多个空格的字符串?

javascript - 使用 id 从表中删除特定行并使用 Jquery Ajax php mysql 在后台刷新同一个表

javascript - 服务人员。如何在低连接下使用缓存

javascript - 回调为 num_rows 并在语句满足时中断

regex - 使用正则表达式搜索文本以匹配外部特定字符