Python の貪欲でない正規表現: * の力を解明する?
正規表現の領域では、貪欲さが最も重要です。 「.*」のような構造は多くの場合、可能な限り多くのテキストを消費するため、一致が肥大化します。しかし、早期の一致を優先する、より外科的なアプローチを探している場合はどうすればよいでしょうか?
解決策は、貪欲な正規表現を非貪欲なセンチネルに変換する修飾子である謎めいた *? にあります。この目立たないワイルドカードは、パターンに適合するテキストの最小部分と一致するように Python に指示します。
「a (b) c (d) e」の例を考えてみましょう。標準の "(.)" 正規表現は、膨大な "b) c (d" を取得します。この過剰な動作を制御するには、?: "(.*?)" の機能を導入します。これで、Python は次のようになります。
*? 修飾子は、単なる括弧を超えて、正規表現パターンが基準を満たすフラグメントを捕捉し、境界を越えたりパターンが破られたりしたときに停止します。
したがって、正規表現をもう少し制限する必要がある場合は、その魔法の *? を追加するだけです。一度に 1 つずつ欲張らずに、マッチを真の使命に向かって導きましょう。
以上がPython の正規表現を貪欲にしないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。