示例文本
1234 Main St Smallville, KS 92348Small County
应该产生:
1234 Main St Smallville, KS 92348
示例代码:
return re.match(r'([0-9]+)(?!.*[0-9])', address)
返回:
None
我已经尝试了所有我能想到的可能模式(例如/d 而不是 [0-9]),但完全被难住了。正则表达式绝对不是我的强项。有什么建议吗?
请您参考如下方法:
找到字符串中的最后一个数字,然后用re.sub 删除它后面的所有字符:
import re
address = "1234 Main St Smallville, KS 92348Small County "
address = re.sub(r'(\d)\D+$', r'\1', address)
print(address) # => 1234 Main St Smallville, KS 92348
参见 IDEONE demo
正则表达式匹配并捕获第 1 组中的一个数字(使用 (\d)),然后匹配一个或多个数字以外的字符(\D+)向上到字符串的末尾 ($)。替换模式仅仅是 \1,是对我们用第 1 组捕获的数字的反向引用(以在结果字符串中恢复它)。
