首先,我们有以下字符串:
aaa{ignoreme}asdebla bla f{}asdfdsaignoreme}asd
我们希望我们的正则表达式找到空格和任何特殊的字符集,例如{}
,但是如果{
完全出现ignoreme}
之后再将其排除
这就是我们现在所处的位置:
(?!{ignoreme})[\s\[\]{}()<>\\'"|^`]
问题是我们的正则表达式在ignoreme
之后找到了}
以下是链接https://regex101.com/r/bU1oG0/2
感谢任何帮助, 感谢
答案 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组中。