我有一个字符串:
string="soupnot$23.99dedarikjdf$44.65 notworryfence$98.44coyoteugle$33.94rock$2,300.00"
我想提取数字23.99, 44.65, 98.44,33.44, 2,300.00
。我有这个正则表达式
\$(.*[^\s])
这有两个问题。
感谢。
答案 0 :(得分:1)
您可以使用正则表达式:
import re
string="soupnot$23.99dedarikjdf$44.65 notworryfence$98.44coyoteugle$33.94rock$2,300.00"
res = re.findall(pattern="[\d.,]+", string=string)
<强>输出:强>
['23.99', '44.65', '98.44', '33.94', '2,300.00']
答案 1 :(得分:1)
试试这个正则表达式:
(?<=\$)\d+(?:,\d+)*(?:\.\d+)?
<强>解释强>
(?<=\$)
- 在$
\d+
- 匹配1位以上的数字(?:,\d+)*
- 匹配,
后跟一个或多个数字的0次出现(?:\.\d+)?
- 匹配.
后跟1位数字。 ?
最后使这个小数部分可选