这是我的代码:
var boo = new RegExp("\\Bis\\B","gi");
var result = boo.exec("this AisA stackoverflow");
document.write(result);
结果是:“是”但我希望函数exec返回整个匹配,即AisA使用 非字边界\ B。我知道我可以使用像。+ is。+这样的模式来返回AisA但是 我想知道如何用非单词边界做同样的事情。
答案 0 :(得分:3)
试试这个:
/.\Bis\B./
这将检查非边界,并将该字符与.
。
答案 1 :(得分:0)
这可能是你想要的?
\S*\Bis\B\S*
由于边界与字符不匹配,但只检查条件,您必须使用其他东西来获取字符。
答案 2 :(得分:0)
字边界是所谓的零宽度匹配,意味着它们匹配条件,而不是字符。例如,在正则表达式“\ bw”中,“\ b”测试表达式中位置之前或之后是否有一些空格。它没有捕获任何东西。
如果要捕获单词字符,请尝试使用\ w。
请参阅:http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/
答案 3 :(得分:0)
匹配包含'is'的单词:
/\b\w*is\w*/gi
最后一个\ b不是必需的,因为它是LA的一部分(\ w *)。