Regex exclude不't仅排除字符串的第一个字符

Regex exclude doesn't exclude string only first character

本文关键字:字符串 排除 第一个 字符 exclude Regex      更新时间:2023-09-26

首先我们有以下字符串:

aaa{ignoreme}asdebla bla f{}asdfdsaignoreme}asd

我们希望我们的正则表达式能找到空白和任何特殊的字符,如{},但如果{之后正好是ignoreme},则将其排除在之外

这就是我们现在的处境:

(?!{ignoreme})['s'[']{}()<>'''"|^`]

问题是我们的正则表达式在ignoreme 之后找到}

这是链接https://regex101.com/r/bU1oG0/2

感谢任何帮助,感谢

关键是}是匹配的,因为您的(?!{ignoreme})前瞻只跳过后面跟着ignoreme}{,并匹配},因为它没有启动{ignoreme}字符序列。此外,在JS中,您不能使用类似(?<!{ignoreme)}的lookbacking。

这是一种可以用正则表达式处理的问题,该正则表达式匹配您不需要的内容,并匹配和捕获您需要的内容:

/{ignoreme}|(['s[']{}()<>'''"|^`])/g

查看regex演示

现在,{ignoreme}匹配(您不必使用此值),(['s[]{}()<>'''"|^`])被捕获到需要使用的值的组1中。