逗号"/>
python正则表达式匹配数字或者逗号
您将如何编写一个正则表达式,使每三位数字与逗号匹配?它必须匹配以下内容:" 42"," 1,234"和" 6,368,745"。
但不能包含以下内容:" 12,34,567"(逗号之间只有两位数字)," 1234"(缺少逗号)。
我知道这个问题以前曾被问过和回答过,但这些只是用于传递给正则表达式的字符串是其中一个数字的解决方案。我想知道如果将正则表达式传递给整个字符串'42 1,234 6,368,745 12,34,567 1234',那是最好的方法。
我设法通过首先分割字符串,然后像下面这样遍历它来做到这一点:
regexsplit = repile(r'^\d{1,3}(,\d{3})*$')
splitstring = string.split()
matches = []
for num in splitstring:
if regexsplit.search(num) is not None:
matches.append(regexsplit.search(num).group())
print matches
首先,我想知道是否有更有效的方式编写该代码。其次,我想知道是否有一种方法可以在不分割字符串的情况下使用.findall()方法。我知道您将不再能够使用^和$锚定开始和结束,因此我完成了:
regexnosplit = repile(r'(\d{1,3}(,\d{3})*)')
matches2 = []
for groups in regexnosplit
更多推荐
python正则表达式匹配数字或者逗号
发布评论