ホームページ >ウェブフロントエンド >jsチュートリアル >複数行のコンテンツを JavaScript 正規表現と照合するにはどうすればよいですか?
複数行一致のための JavaScript 正規表現境界の克服
JavaScript 正規表現を使用する場合、複数行にわたるコンテンツを一致させる方法を理解することが重要になります。線。改行を含む PRE ブロックを抽出しようとする次のコード スニペットを考えてみましょう:
<code class="js">var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\ncccddd"; var arr = ss.match(/
期待される結果は PRE ブロック全体をキャプチャすることですが、結果は null アラートです。これを修正するために、複数行のマッチングの複雑さを掘り下げます。
'.|[rn]' ギャンビット
最初のアプローチには、 を置き換えることが含まれます。任意の文字または改行に一致する式を含むワイルドカード文字: (.|[rn])。しかし、これは効果がないことがわかります。
啓示: [sS]
成功の鍵は、の代わりに [sS] を使用することにあります。複数行のマッチング用。この文字クラスには空白文字と空白以外の文字の両方が含まれており、問題に効果的に対処します。
<code class="js">var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\ncccddd"; var arr = ss.match(/
/gm); alert(arr); // <pre class="brush:php;toolbar:false">...<\/pre></code>
貪欲の微妙さ: '?' vs. ''
もう 1 つの考慮事項は、使用される量指定子に関連します。 は明白な選択のように思えるかもしれませんが、不必要な貪欲さをもたらします。 「?」または ' ?'
[^]
に関するメモ [^] は複数行のドットとしても機能します。 、別の投稿のコメントに従って非推奨になりました。したがって、[sS] に固執する方が良いです。
以上が複数行のコンテンツを JavaScript 正規表現と照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。