我试图获得一个特定的单词,但不是如果字符串' '在它之前。我试过了
((?!\,\s))(word)
然而,那不起作用。我希望它能匹配单词'。我做错了什么?
答案 0 :(得分:1)
您已将提前编码为负面。尝试使用背后的:


 (?<!,\ s)word



 另请注意,您不需要编码的大部分括号。

答案 1 :(得分:0)
我同意答案是一种看法背后的断言 区别在于放在哪里。
以断言开头的任何正则表达式都会变慢 原因是断言不能被优化到插入点。
出于这个原因,它可能看起来很大,但它在性能上有所不同 从5到20次。
示例
word asdfasdf afsdbbasbfasfb
adbbadfb, afdsbafbdsasfb adb, , , ,
word, word word, word
基准
Regex1: (?<!,\s)word
Options: < none >
Completed iterations: 50 / 50 ( x 1000 )
Matches found per iteration: 3
Elapsed Time: 0.70 s, 703.28 ms, 703277 µs
Regex2: word(?<!,\sword)
Options: < none >
Completed iterations: 50 / 50 ( x 1000 )
Matches found per iteration: 3
Elapsed Time: 0.17 s, 170.21 ms, 170207 µs