hahaha

hahaha

.*,.*?,.+?の意味を解析する

記事では、正規表現の.*、.*?、.+? の意味について説明しています。この記事は非常に詳細であり、学習や仕事において参考になる価値があります。必要な方は参考にしてください。

1. .*

.は改行文字 \n 以外の任意の 1 文字にマッチすることを意味し、*は 0 回以上の繰り返しを表します。したがって、.*は任意の文字が 0 回以上繰り返されることを表します。?がない場合、これは貪欲なマッチングを意味します。例えば、a.*bは、a で始まり b で終わる最も長い文字列にマッチします。aababを検索する場合、aabab全体にマッチします。これは貪欲マッチングと呼ばれます。
また、パターンsrc=.*は、最も長い src=` で始まり、` で終わる最も長い文字列にマッチします。<img src=``test.jpg` width=`60px` height=`80px`/> を検索する場合、src=``test.jpg` width=`60px` height=`80px` が返されます。

2. .*?

?は * または + の後に使用される場合、非貪欲モードを意味します。これは最小限の繰り返しでマッチングすることを意味します。つまり、可能な限り少ない文字にマッチしますが、マッチ全体が成功するために最小限の繰り返しを使用します。
a.*?bは、a で始まり b で終わる最も短い文字列にマッチします。aababに適用すると、aab(1 文字目から 3 文字目)とab(4 文字目から 5 文字目)にマッチします。
また、パターン src=`.*?`は、最も短い src=` で始まり ` で終わる文字列にマッチします。`` の間に文字がなくても構いません。なぜなら、* は 0 回以上の繰り返しを意味するからです。<img src=``test.jpg` width=`60px` height=`80px`/> を検索する場合、src=`` が返されます。

3. .+?

上記と同様に、?は * または + の後に使用される場合、非貪欲モードを意味します。これは最小限の繰り返しでマッチングすることを意味します。
a.+?bは、a で始まり b で終わる最も短い文字列にマッチしますが、a と b の間には少なくとも 1 つの文字が必要です。ababccaabに適用すると、abab(1 文字目から 4 文字目)とaab(7 文字目から 9 文字目)にマッチします。注意してください、この場合、マッチ結果はababaabではありません。なぜなら、a と b の間には少なくとも 1 つの文字が必要だからです。
また、パターン src=`.+?`は、最も短い src=` で始まり ` で終わる文字列にマッチします。+ は 1 回以上の繰り返しを意味するため、開始と終了の間には必ず文字が必要です。<img src=``test.jpg` width=`60px` height=`80px`/> を検索する場合、src=``test.jpg` が返されます。.*?との違いに注意してください、この場合は **src=``** にはマッチしません。なぜなら、src=`` の間には少なくとも 1 つの文字が必要だからです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。