正则表达式找到所有不以#&$ 39; $'开头的整数

时间:2015-07-09 19:08:13

标签: python regex

我希望匹配所有不以美元符号$。开头的整数。

例如,在

"我花了100美元买了10个12英寸的潜水艇",

我想提取10和12而不是100。

我尝试了以下内容:

\b(?!\$)\d+\b

我不明白为什么它不起作用。例如,如果我替换了' \ $'使用' 1',它会给我一些不以#1;'开头的数字。

2 个答案:

答案 0 :(得分:9)

您需要负面反对

(?<!\$)\b\d+\b

这将找到所有不在$

之前的整数

RegEx Demo

答案 1 :(得分:1)

我们正在寻找前面没有$(和其他十进制数字)的十进制数字序列。

>>> re.findall(r"(?<![\$\d])(\d+)", "I spent $100 on 10 12-inch subs")
['10', '12']