我想用非空格来吸引大家的注意。

var paragraphy="Apple banana kişiler ki örnek foo.";
var word="kişiler";
var regex = new RegExp("(?:[\\s>]|^)("+word+")(?=[.,;?!]?(?:[<\\s])|$)", "gi");
console.log(paragraphy.match);


打印:[“kişiler”],但我想要这个结果:[“kişiler”]
我必须使用Positive Lookbehind,但JavaScript不支持它。有替代解决方案吗?

最佳答案

由于您不能将单词边界与Unicode字符一起使用,因此让我们匹配空格,但将单词分组以进行检索:

(?:^|\s)(<your word>)(?:\s|$)


比赛后,第1组应该是期望的单词。

例如 :

var regex = /(?:^|\s)(kişiler)(?:\s|$)/
var paragraphy="Apple banana kişiler ki örnek foo."
paragraphy.match(regex)[1]
> "kişiler"

09-20 14:31