我正在尝试过滤不在“[]”中的单词。
为什么这不起作用?
[^\[][\u0000-\u024F]+[^\]]
答案 0 :(得分:1)
表达式不起作用的原因是它匹配括号内的所有文本以及外部。
这是我能做的最好的事情:
/(?:^|])[^[]+/g
它包含匹配中的]
,因为不允许使用后视:
如果允许后视,这将是门票:
/(?:^|(?<=]))[^[]+/g
答案 1 :(得分:0)
因为这会匹配[\u0000-\u024F]+
和2个符合[^\[]
匹配的字符。如果你想要你的正则表达式引擎匹配整个模式,你需要在正则表达式中使用开始和结束锚点:
/^[^\[][\u0000-\u024F]+[^\]]$/m
但是如果你的字符串在每一行中包含单词,这将是有效的,这不是一种正确的方法。
作为一种更好的方法,你可以使用消极的外观:
(?<!\[)[\u0000-\u024F]+(?!\])