Javascript 所有`{`的负查找,前面不带`<;em>`
给定一个字符串,例如 敏捷的棕色{{{fox}}跳过了懒惰的{{{dog}} 我正在寻找一种模式,它将匹配前面没有Javascript 所有`{`的负查找,前面不带`<;em>`,javascript,regex,Javascript,Regex,给定一个字符串,例如 敏捷的棕色{{{fox}}跳过了懒惰的{{{dog}} 我正在寻找一种模式,它将匹配前面没有块的{的所有实例 虽然模式/(?)\{{2}/gm可以工作,但这不是Firefox和IE风格的JS的选项 我已经做了相当多的挖掘工作,可以找到大量的示例,这些示例几乎达到了目的,但还不完全达到目的。为字符串{{{{{{u获得正匹配是没有问题的,但我正在寻找的恰恰相反 我觉得使用这种查找方法可能会朝着错误的方向前进。我是否遗漏了更简单的内容?我猜您希望访问那些{{}中的内容,并将其包
块的{
的所有实例
虽然模式/(?)\{{2}/gm
可以工作,但这不是Firefox和IE风格的JS的选项
我已经做了相当多的挖掘工作,可以找到大量的示例,这些示例几乎达到了目的,但还不完全达到目的。为字符串{{{{{{u
获得正匹配是没有问题的,但我正在寻找的恰恰相反
我觉得使用这种查找方法可能会朝着错误的方向前进。我是否遗漏了更简单的内容?我猜您希望访问那些
{{}
中的内容,并将其包装在
标记中
您可以使用正则表达式
并替换为$1$2
确保前面的字符不是([^>])
匹配{(.**}}
{{}}
[\s\s]*?
正则表达式匹配任何
内容,然后在所有其他上下文中将{…}
子字符串与{[\s\s]*?}
模式匹配,捕获其中一个并在回调方法中使用自定义逻辑:
console.log(
“敏捷的棕色{{{狐狸}跳过了懒惰的{{{狗}”
.replace(/[\s\s]*?|({{[\s\s]*?}})/g,函数($0,$1){
返回$1?“+$1+”$0;
})
)
您可以提前查看结束标记:/{{{[^}]*?}(?!)/g
let test=“快速棕色{{{fox}}跳过懒惰的{{{dog}asdfafds{{{fox}}asdf asdf asdf sdfasdfsfdfdf{{{dog}}”;
控制台日志(“输入:”+测试);
console.log(“output:“+test.replace”(/({[^}]*?})(?!)/g,“$1”);
为什么,它是正确的。匹配、捕获和跳过。当然-但是反向查找捕获我想要的。但是它在IE和Firefox中不起作用。你匹配这些字符串是为了什么?提取还是替换?替换-我想在上运行替换{{
没有前面有
标记的实例为什么不提前查找结束标记?/{{{[^}]*?}(?!/g
几乎达到了这一点-唯一的小问题是它将匹配空间{{here}中的e
@Joseph Marikle的上述例子似乎已经被证明是正确的it@petehotchkiss它会,但也会用$1