アドレスパターンを抽出するためにPython正規表現を使用しています。たとえば、次のように追加のリストがあります。
12buixuongtrach
34btrannhatduat
25bachmai
78bhoangquocviet
次のようにアドレスを絞り込みたい:
12 buixuongtrach
34b trannhatduat
23 bachmai
78b hoangquocviet
ヒントコードを教えてください。
どうもありがとう
非常に単純な正規表現を使用して数字を文字から切り離すことができますが、人々がコメントで言ったように、それらの b がいつ数字の一部であるべきか、いつテキストの一部であるべきかを知る方法はありません.
import re
text = """12buixuongtrach
34btrannhatduat
25bachmai
78bhoangquocviet"""
unmatched = text.split()
matched = [re.sub('(\d+)(.*)', '\\1 \\2', s) for s in unmatched]
これにより、次のことが得られます。
>>> matched
['12 buixuongtrach', '34 btrannhatduat', '25 bachmai', '78 bhoangquocviet']
正規表現は、文字列の先頭にある 1 つ以上の数字を取得して group\1
に入れ、残りの文字列を group に入れるだけ\2
です。
ご回答ありがとうございます。私はついに回避策を見つけました。私は以下のパターンを使用しましたが、それは魅力のように機能します:)
'[a-zA-Z]+|[\/0-9abcd]+(?!a|u|c|h|o|e)'