ホームページ >バックエンド開発 >Python チュートリアル >Python 3.4.3 では、「re.search」が同じパターンと文字列で正しく動作するのに、「re.findall」が空のリストを返すのはなぜですか?
re.findall が異常な動作をする
ジレンマ:
Python 3.4 を使用した Python スクリプト内.3、 re.search メソッドは、指定されたパターンを使用して特定のソース文字列に適用されると、予想される結果を提供します。ただし、re.findall は、不可解なことに、同じパターンとソース文字列に対して空のリストを返します。
Exploration:
興味深いことに、 re.findall メソッドは、以下に基づいて文字列から一致を抽出するための要件を満たしているように見えますが、予期しない動作をします。
解決策:
注意深く調査すると、この特異な動作には 2 つの要因が関与していることが明らかになります:
修正されたパターン:
この問題を軽減し、一致を正常に抽出するには、次の修正されたパターンになるはずです採用:
-?\d*\.?\d+
説明:
のデモ:
パターンが変更されたため、re.findall メソッドは、予想される一致リストを正確に取得するようになりました:
['123', '3.1415926']
以上がPython 3.4.3 では、「re.search」が同じパターンと文字列で正しく動作するのに、「re.findall」が空のリストを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。