2

これは私のコードです:

var boo = new RegExp("\\Bis\\B","gi");
var result = boo.exec("this AisA stackoverflow");
document.write(result);​

結果は「is」ですが、関数execが一致全体、つまり単語以外の境界\Bを使用するAisAを返すようにします。。+is。+などのパターンを使用してAisAを返すことができることは知っていますが、単語以外の境界で同じことを行う方法を考えています。

4

4 に答える 4

3

これを試して:

/.\Bis\B./

これにより、非境界がチェックされ、その文字が..

于 2012-06-19T19:06:10.220 に答える
0

単語境界はゼロ幅一致と呼ばれるもので、文字ではなく条件に一致することを意味します。たとえば、正規表現「\bw」では、「\b」は、式内のその位置の前後に空白があることをテストします。何もキャプチャしません。

単語の文字をキャプチャする場合は、\w を使用してみてください。

参照: http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/

于 2012-06-19T19:11:52.103 に答える
0

これはあなたが求めているものかもしれませんか?

\S*\Bis\B\S*

境界は文字と一致せず、条件のみをチェックするため、文字を取得するには別のものを使用する必要があります。

于 2012-06-19T19:05:39.990 に答える
0

「is」を含む単語を照合するには:

/\b\w*is\w*/gi

最後の \b は LA(\w*) の一部なので必要ありません。

于 2012-06-19T19:22:59.887 に答える