我要做的只是从美元数字中提取数字。你知道吗
输入格式
...
$1,289,868
$62,000
$421
...
所需输出
...
1289868
62000
421
...
我用来只提取数字和逗号的正则表达式是:
r'\d+(,\d+){0,}'
当然输出。。。你知道吗
...
1,289,868
62,000
421
...
我想做的是将输出转换为整数(int(...)
),但显然这对逗号不起作用。我相信我能自己解决这个问题,但我现在时间很紧。你知道吗
我知道我可以简单地使用r'\d+'
,但这显然会将每个块分成不同的匹配项…
Tags:
您不能在一个匹配操作中匹配不连续的文本。您不能将正则表达式放入
re.findall
对1,345,456
来接收1345456
。您需要首先匹配所需的字符串,然后在代码中对其进行后期处理。你知道吗一个正则表达式,可以用来提取数字本身
见this regex demo。你知道吗
或者,您可以使用更通用的正则表达式来与
re.findall
一起使用:见this regex demo。你知道吗
请注意,
re.findall
将只返回字符串的捕获部分(与regex中的(...)
部分匹配的部分)。你知道吗细节
\$
-美元符号(\d{1,3}(?:,\d{3})*)
-捕获组1:\d{1,3}
-1到3个数字(如果使用\d+
,则为1个或更多数字)(?:,\d{3})*
-0个或更多的,
-逗号\d{3}
-3位(如果使用\d+
,则为1位或更多位)。你知道吗Python code sample(去掉逗号):
使用
re.sub
例如:
输出:
你不需要正则表达式。你知道吗
很好用。你知道吗
如果出于某种原因确实要使用regex:
相关问题 更多 >
编程相关推荐