Python 正则表达式使用斜杠查找数字

Python 正则表达式使用斜杠查找数字,python,regex,python-3.x,Python,Regex,Python 3.x,我在句子中有一些数字,它们看起来像这样 s='rare blond Canadian terrier on wheels. Only $8.98. test test. ...0.1/10 very rare' patt='[0-9\.{1}]*/10' re.findall(patt,s) 我想找到float/10(有时是int/10),但通过我的模式,我得到了 ['...1/10'] 我相信这应该是一个简单的解决办法,有人请帮忙吗 您可以使用: \d+(?:\.\d+)?/10 \

我在句子中有一些数字,它们看起来像这样

s='rare blond Canadian terrier on wheels. Only $8.98. test test. ...0.1/10 very rare'

patt='[0-9\.{1}]*/10'
re.findall(patt,s)
我想找到float/10(有时是int/10),但通过我的模式,我得到了

['...1/10']
我相信这应该是一个简单的解决办法,有人请帮忙吗

您可以使用:

\d+(?:\.\d+)?/10
  • \d+
    匹配一个或多个数字

  • 可选(
    )未捕获的组
    (?:\。\d+)
    匹配一个
    ,后跟一个或多个数字

  • /10
    匹配文字
    /10

示例:

In [72]: str_ = 'rare blond Canadian terrier on wheels. Only $8.98. test test. ...0.1/10 very rare'

In [73]: re.search(r'\d+(?:\.\d+)?/10', str_).group()
Out[73]: '0.1/10'

In [74]: str_ = 'rare blond Canadian terrier on wheels. Only $8.98. test test. ...23/10 very rare'

In [75]: re.search(r'\d+(?:\.\d+)?/10', str_).group()
Out[75]: '23/10'

为什么不
“\d+\?\d*”
太好了,谢谢,我已经使用[0-9]一段时间了,从来没有考虑过使用\d