我使用的是Python2.7,遇到以下问题,我有字符串:
s = 'No of tests: 23'
我正在使用以下正则表达式:
re.findall('No of tests: \d+',s)
显然正则表达式返回一个空列表。知道为什么吗?
答案 0 :(得分:1)
您的字符串在数字前面包含2个空格。
当输入字符串是用户定义的并且空格可能有不同的数字时,最好使用\s*
来匹配任何零个或多个空格字符。要确保有1个或多个空格,请使用\s+
。
因此,建议使用
r'No\s+of\s+tests:\s*\d+'
请注意,在Python中定义正则表达式模式时,原始字符串文字是最佳的(由于转义特殊字符,您不会遇到任何问题,但不是这里的情况)。