私は、テキスト中の電話番号のパターンに合わせるプログラムを作成中です。正規表現を見つける ' n'
私はこのテキストの読み込みだ:変数に
(01111-222222)fdf
01111222222
(01111)222222
01111 222222
01111.222222
を、そしてそれは、これを返しています "のfindAll" を使用して:
('(01111-222222)', '(01111', '-', '222222)')
('\n011112', '', '\n', '011112')
('(01111)222222', '(01111)', '', '222222')
('01111 222222', '01111', ' ', '222222')
('01111.222222', '01111', '.', '222222')
これは私の式である:
ex = re.compile(r"""(
(\(?0\d{4}\)?)? # Area code
(\s*\-*\.*)? # seperator
(\(?\d{6}\)?) # Local number
)""", re.VERBOSE)
私はなぜ '\ n'が捕らえられているのか分かりません。
'+
'の代わりに '\\.*
'の*
が指定されている場合、その式は必要なものとして機能します。または、単に*
を削除しても(そして、1つのピリオドで区切られた2つの数字のセットが見つけられれば)、式が機能します。
'\ s *' '\ n 'を含む –
' re.DOTALL'(または 're.S')フラグがセットされていない限り、' .'は改行にマッチしません。 – cdarke
私は最後の段落が事実ではなく、真実であることを認識しました。私は結果を正しく見なかった。 –