Python 提取字符串中的字符串并忽略搜索字符串

Python 提取字符串中的字符串并忽略搜索字符串,python,regex,Python,Regex,我有一个字符串: string="soupnot$23.99dedarikjdf$44.65 notworryfence$98.44coyoteugle$33.94rock$2,300.00" 我想提取数字23.99、44.65、98.44、33.44、2300.00。我有这个正则表达式 \$(.*[^\s]) 这有两个问题 它返回“$”符号。我只想要号码 它只在数字末尾有空格时有效,但有时可能有字母,在这种情况下不起作用 谢谢。您可以使用正则表达式,如图所示: import re stri

我有一个字符串:

string="soupnot$23.99dedarikjdf$44.65 notworryfence$98.44coyoteugle$33.94rock$2,300.00"
我想提取数字
23.99、44.65、98.44、33.44、2300.00
。我有这个正则表达式

\$(.*[^\s])
这有两个问题

  • 它返回“$”符号。我只想要号码
  • 它只在数字末尾有空格时有效,但有时可能有字母,在这种情况下不起作用

  • 谢谢。

    您可以使用正则表达式,如图所示:

    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']
    

    您可以使用regex,如下所示:

    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']
    
    试试这个正则表达式:

    (?试试这个正则表达式:


    (?请解释“[\d,]+”做什么[]用于表示一组字符。因此它将匹配该组字符中的一个或多个重复。请解释“[\d,]+”做什么[]用于表示一组字符。因此它将匹配该组字符中的一个或多个重复。