1

我一直在使用 python 正则表达式来提取地址模式。例如,我有一个添加列表,如下所示:

12buixuongtrach 
34btrannhatduat 
25bachmai 
78bhoangquocviet

我想细化这样的地址:

12 buixuongtrach
34b trannhatduat 
23 bachmai 
78b hoangquocviet

任何人请帮助一些提示代码?

非常感谢

4

2 回答 2

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']

正则表达式只是在字符串的开头抓取一个或多个数字并将它们放入 group\1中,然后将字符串的其余部分放入 group\2中。

于 2012-11-20T06:29:36.783 回答
0

谢谢大家的回复。我终于找到了解决方法。我使用了如下模式,它就像一个魅力:)

'[a-zA-Z]+|[\/0-9abcd]+(?!a|u|c|h|o|e)'
于 2012-11-20T08:06:04.577 回答