示例文字
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])并且完全被难倒了。正则表达式绝对不是我强大的领域。有什么建议吗?
答案 0 :(得分:3)
找到字符串中的最后一位数字,然后使用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 }})。替换模式仅仅是$
,是对我们使用Group 1捕获的数字的反向引用(在结果字符串中恢复它)。
答案 1 :(得分:2)
您可以在false
之前使用贪婪的var newObj = playerObj.players.reduce(function(old,itm){
old[itm.name] = itm.number
return old;
}, {});
来确保匹配最后的数字:
.*