为什么这个正则表达式在python中不匹配

时间:2016-06-04 05:53:47

标签: python regex python-2.7

我需要找到" 7.1/10" in" 7.1/10&nb"使用以下正则表达式:

\d{1}\.?\d{0,2}\/10

但以下代码与任何内容都不匹配:

rating= "7.1/10&nb"
p = re.compile(re.escape("\d{1}\.?\d{0,2}\/10"))
m = p.match(rating)
if m:
    print("rating: {}".format(m.group()))
else:
    print("no match found in {}".format(rating))

我的代码有什么问题?

2 个答案:

答案 0 :(得分:2)

p = re.compile(r"\d\.?\d{0,2}/10")

你有几个问题:

  • 添加' r'对于原始字符串或你必须逃避所有' \': re.compile("\\d\\.?\\d{0,2}/10")
  • \ d {1}可以是\ d
  • \/可以/,无需逃避

答案 1 :(得分:1)

只更改代码中的一行。

p = re.compile(re.escape("\d{1}\.?\d{0,2}\/10")) re.compile(r"\d{1}\.?\d{0,2}\/10")

它会顺利运作。