Python の非貪欲正規表現
正規表現を扱う場合、標準の * 演算子は貪欲です。つまり、できるだけ多くの一致を試みます。可能な限り入力の。ただし、欲張らないアプローチが必要なシナリオもあります。この記事では、Python での貪欲でない正規表現の使用方法について説明します。特に、不要な文字を含めずに特定の部分文字列と一致することが目標である場合に焦点を当てます。
問題
次の入力文字列を考えてみましょう: "a (b) c (d) e"
標準の貪欲正規表現を使用する場合"(.)"、Python は "b) c (d" と一致します。これは、 が前の式を 0 回以上として定量化し、貪欲な動作により可能な限り一致するようになるためです。
解決策
正規表現を貪欲にしないようにするには、修飾子を使用します?。これにより、Python は式にできるだけ少ない回数一致するように指示され、結果として "(.?)" は "b" のみに一致します。
Python実装
import re input_string = "a (b) c (d) e" non_greedy_regex = r"(.*?)" match = re.search(non_greedy_regex, input_string) if match: print(match.group(1))
出力:
b
結論
非貪欲修飾子は、便利で簡潔な方法を提供します。 Python での正規表現の動作を制御するには、一致をできるだけ短くするように指定します。これにより、不要な文字を誤って含めることなく、目的の部分文字列を正確に指定できます。
以上がPython で貪欲でない正規表現を使用して、不要な文字を含めずに特定の部分文字列と一致させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。