-1

コードは次のように表示されます。

alert(/symbol([.\n]+?)symbol/gi.test('symbolbbbbsymbol'));

また

alert(/#([.\n]+?)#/gi.test('#bbbb#'));
4

2 に答える 2

8

<との中に文字クラスがあるドットを探しているからです>。文字クラスを削除します。

/<(.+?)>/

質問編集後の明確化:

最初のコード ブロックは、次のパターンを使用する必要があります。/symbol(.+?)symbol/

2 番目のコード ブロックは、次のパターンを使用する必要があります。/#(.+?)#/

于 2013-03-10T16:40:41.357 に答える
2

正規表現は false を返します。ドットは、文字クラス内に配置されると、任意の文字 (ただし改行) に一致する特別な力を失うためです。[]単純な".".

どちらかの端が同じ1 文字で区切られた部分文字列を照合してキャプチャするには、使用する最も効率的なパターンは次のとおりです。

/#([^#]+)#/

どちらかの端が同じ文字列で区切られた部分文字列を照合してキャプチャするには使用するパターンは次のとおりです。

/symbol(.+?)symbol/

または、改行全体で一致させたい場合

/symbol([\s\S]+?)symbol/

whereは、任意の文字に相当する任意[\s\S]のスペースまたは非スペース文字に一致します。

?、パターン マッチを遅延させるために含まれてい"symbol"ます。

于 2013-03-10T17:51:00.970 に答える