特定の文字列を正規表現でキャプチャしようとしていますが、最初の文字が失われています。
文字列は (06)12345678 です
私の正規表現は
r'\b\((0[34679]{1})\)?([\- ]{0,1})[0-9]{3,4}([\- ]{0,1})[0-9]{3,5}'
しかし、私が試合で得るのは
06)12345678
私は本当にそれが最初に欲しいです(また。
( および ) は、() がない場合があるため、条件付きです。しかし、単語の境界は、次のような数字を防ぐためにあります
hello123456789
マッチング
regex = r'\b\(?(0[34679]{1})\)?([\- ]{0,1})[0-9]{3,4}([\- ]{0,1})[0-9]{3,5}'
matches = re.finditer(regex, '(06)12345678)')
for match in matches:
print match.group(0)
何かご意見は?
-- 例 --
(06)12345678 should match, (06)12345678
06 12345678 should match, 06 12345678
1234567890 should match, 1234567890
=12345678 no match