私は次の行を実行しようとしていて、Pythonは['402-292-2345']を返すことを期待していますが、シェルから取得するのはすべて[下の最終行私は間違って何をしていますか? (注:欠落したダッシュを反映するために、元のコードを編集しました。)regex findall()のみを返す[]
後編集:IDLEのテキストエディタを使用してそこからシェルを実行することに関連すると思われる追加の問題が発生しました。 は、あなたのコメントのカップルの後、私はシェルで直接以下のラインを走り、テキストエディタからこの蘭
下の#2が返されました:#2、その後
phoneRegex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
resume = '''IM A SAMPLE 1234 North 55 Street Bellevue, Nebraska 68005 402-292-2345 [email protected] PROFESSIONAL REFERENCES Name Attaboy Company'''
phoneRegex.findall(resume)
[]
私が直接これを実行しましたシェル:予想通り[ '402-292-2345'] を返さ
phoneRegex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
resume = '''IM A SAMPLE 1234 North 55 Street Bellevue, Nebraska 68005 402-292-2345 [email protected] PROFESSIONAL REFERENCES Name Attaboy Company'''
phoneRegex.findall(resume)
。
これは、シェルで直接実行されていましたが、IDLEのテキストエディタでは実行されませんでした。
'402-2922345'部分文字列に' -'が2つあります。 'r' \ d {3} - \ d {3} - ?\ d {4} ''を試してください。それでも '402-2922345'が返されます。マッチを後処理ステップとして再フォーマットする必要があります。 –
サイドノートとして:[regex101.com](https://regex101.com/r/7UtxEt/2)のような正規表現をデバッグするのに最適なオンライン正規表現テストアプリがあります。 – Xukrao
@ウィクショーありがとう - 元のテキストエディタにあるように、なぜ2番目のダッシュが欠けていたのか分かりません。私はまた、私のIDLEシェルに直接行を置くことによって別の実験を実行し、それは正常に実行されました。 IDLEテキストエディタから実行するときにさらに注意を払う必要のあるものがあるかどうか疑問に思う。 – samueljames3