>>> import re
>>> b = re.findall(r'^\d{,3}(,\d{3})*','12,344,567')
>>> b
[',567']
我希望得到['12,344,567'],但实际输出是[',567']。哪里出问题了?预先感谢。
答案 0 :(得分:1)
您需要使用?:
,否则正则表达式仅捕获括号内的内容:
^\d{,3}(?:,\d{3})*
示例:
import re
b = re.findall(r'^\d{,3}(?:,\d{3})*','12,344,567')
print(b)
# ['12,344,567']
答案 1 :(得分:1)
我的猜测是,您可能希望设计一个类似于以下内容的表达式:
import re
regex = r"^\d{1,3}(?:,\d{3})*$"
test_str = ("12,344,567")
print(re.findall(regex, test_str))
['12,344,567']
如果要浏览/简化/修改该表达式,请在this demo的右上角进行解释。