正则表达式排除不排除第一个字符串

时间:2016-08-03 11:02:52

标签: javascript regex

首先,我们有以下字符串:

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

我们希望我们的正则表达式找到空格和任何特殊的字符集,例如{},但是如果{完全出现ignoreme}之后再将其排除

这就是我们现在所处的位置:

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

问题是我们的正则表达式在ignoreme

之后找到了}

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

感谢任何帮助, 感谢

1 个答案:

答案 0 :(得分:3)

关键是trait M { type A type B } class F[X,Y] extends M { type A = X type B = Y } trait Bar[F] { def doSmth[C](x: M#A => M#B): C } 已匹配,因为}预测仅跳过(?!{ignoreme})后跟{并匹配ignoreme},因为它不是}开始{ignoreme} char序列。此外,在JS中,您不能使用lookbehind,例如(?<!{ignoreme)}

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

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

请参阅regex demo

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