我一直在使用python regex来提取地址模式。 例如,我有一个添加列表,如下所示:
12buixuongtrach
34btrannhatduat
25bachmai
78bhoangquocviet
我想改进这些地址:
12 buixuongtrach
34b trannhatduat
23 bachmai
78b hoangquocviet
任何人都可以帮助一些提示代码吗?
非常感谢
答案 0 :(得分:3)
你可以使用一个非常简单的正则表达式来将数字从字母中分开,但就像人们在评论中所说的那样,没有办法知道这些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
,然后将其余字符串放入组\2
。
答案 1 :(得分:0)
感谢大家的回复。我终于找到了一个解决方案。 我使用下面的模式,它就像一个魅力:)
'[a-zA-Z]+|[\/0-9abcd]+(?!a|u|c|h|o|e)'