Python 正则表达式匹配数

Python 正则表达式匹配数,python,regex,Python,Regex,我希望得到['12344567'],但实际输出是[',567'],哪里错了?提前感谢。您需要使用?:,否则正则表达式只捕获其中的内容: >>> import re >>> b = re.findall(r'^\d{,3}(,\d{3})*','12,344,567') >>> b [',567'] 示例: ^\d{,3}(?:,\d{3})* 我的猜测是,您可能希望设计一个类似于以下内容的表达式: import re b = re.fi

我希望得到['12344567'],但实际输出是[',567'],哪里错了?提前感谢。

您需要使用
?:
,否则正则表达式只捕获其中的内容:

>>> import re
>>> b = re.findall(r'^\d{,3}(,\d{3})*','12,344,567')
>>> b
[',567']
示例

^\d{,3}(?:,\d{3})*

我的猜测是,您可能希望设计一个类似于以下内容的表达式:

import re

b = re.findall(r'^\d{,3}(?:,\d{3})*','12,344,567')
print(b)
# ['12,344,567']
输出
如果要探索/简化/修改该表达式,请在的右上面板中进行说明

括号仅存储它捕获的最后一个匹配项
import re

regex = r"^\d{1,3}(?:,\d{3})*$"
test_str = ("12,344,567")

print(re.findall(regex, test_str))
['12,344,567']