PHP は複数行の正規表現解析に使用され、主に収集と置換に使用されます。
<table>
<tr><td>aaaa</td></tr>
<tr><td>bbbb</td></tr>
<tr><td>cccc</td></tr>
<tr><td>dddd</td></tr>
</table>
ログイン後にコピー
PHP の正規表現を使用してこのようなテキストを照合するにはどうすればよいですか? ?
私の最初の考え:
パターン: "/
[.n]*?
" (これは間違っています)
アイデア: "." は改行以外の文字に一致します。"[ .n" を使用します]」をすべての文字 (改行を含む) と一致するように組み合わせましたが、予期せぬ状況が発生しました - 悲劇、結果は何もありませんでした。
いろいろ調べた結果、別のパターンを書きました:「/
(.|n)*?
」(これは可能です)
「[]」を「()」に置き換えて、「 |" or 選択を行う、それだけです (混乱しています。なぜ "[]" も選択方法にできないのですか??)
インターネット上には次のような答えもあります。
PATTEN: "/< tr>.*? /is" (非常に簡潔で便利です。この方法に同意します)
追記:なぜ "[]" も選択できないのですか? ? ?ご存知の場合は、忘れずに教えてください...
[] は . と同等です。通常の説明をよく読んでください
改行に関しては、通常、モード修飾子 s
s (PCRE_DOTALL) の使用を検討してください
この修飾子を設定すると、パターン内のドット メタ文字が改行を含むすべての文字に一致します。この修飾子がないと、ドットは改行に一致しません。
[] 試してみてください。 [.]*?/is" これはわかると思います
非常に強力な () もあります
複数の行に一致する PHP の正規表現解析に関するその他の記事については、PHP 中国語に注目してくださいネット!