ホームページ  >  記事  >  バックエンド開発  >  Python の貪欲マッチングと複数行マッチング

Python の貪欲マッチングと複数行マッチング

不言
不言オリジナル
2018-04-19 10:29:482206ブラウズ

以下はPythonでの貪欲マッチングと複数行マッチングの例です。参考になると思います。一緒に見てみましょう

1 貪欲でないフラグ

>>> re.findall(r"a(\d+?)", "a23b")
  ['2']
>>> re.findall(r"a(\d+)", "a23b")
  ['23']

この状況を比較することに注意してください:

>>> re.findall(r"a(\d+)b", "a23b")
  ['23']
>>> re.findall(r"a(\d+?)b", "a23b")
  ['23']

2 複数の行を一致させたい場合は、次を追加しますre.S および re.M フラグ

re.S: . 改行文字と一致します (デフォルト) 改行文字と一致しません

>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b")
  []
>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b", re.S)
  [('23', '34')]
>>>

re.M: ^$ フラグはすべての行と一致します (デフォルト)と $ は最初の行のみに一致します

>>> re.findall(r"^a(\d+)b", "a23b\na34b")
  ['23']
>>> re.findall(r"^a(\d+)b", "a23b\na34b", re.M)
  ['23', '34']

ただし、^ 記号がない場合は、

>>> re.findall(r"a(\d+)b", "a23b\na23b")
  ['23', '23']

関連する推奨事項:

Python でビデオをクロールするための単純な Web クローラーを作成する

以上がPython の貪欲マッチングと複数行マッチングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。