2015-11-05 17 views

回答

0

因为这将匹配[\u0000-\u024F]+和2字符将由[^\[]是匹配。如果你想你的正则表达式引擎匹配整个模式,你需要在你的正则表达式使用的开始和结束锚:

/^[^\[][\u0000-\u024F]+[^\]]$/m 

但是,如果你的字符串是包含在每一行,这是不正确的话,这将工作办法。

作为一个更好的办法,你可以使用负的样子变通:

(?<!\[)[\u0000-\u024F]+(?!\]) 
+0

这是测试行:[link](http://regexr.com/3c4vr)。看起来它仍然没有工作。我怎样才能匹配“早上好”的单词? – anhchuong95

1

你的表达是不工作的原因是,它的所有文字括号匹配以及外部。

这是我已经能够做到最好:

/(?:^|])[^[]+/g 

它包括] S IN的比赛,因为向后看是不允许的:

http://regexr.com/3c515

如果看 - 背后被允许,这将是票:

/(?:^|(?<=]))[^[]+/g 

https://regex101.com/r/lK9tS7/3

+0

非常感谢。它确实有效,但我如何才能匹配括号外的拉丁语单词? – anhchuong95

+0

不确定这是什么意思,但尝试更改'^ ['to'\ u0000- \ u005A \ u005C- \ u024F'。 –