0
我使用Python2.7和我遇到這樣的問題,我有字符串:Python的正則表達式re.findall
s = 'No of tests: 23'
我使用下面的正則表達式:
re.findall('No of tests: \d+',s)
而且很顯然,正則表達式返回一個空列表。任何想法爲什麼?
我使用Python2.7和我遇到這樣的問題,我有字符串:Python的正則表達式re.findall
s = 'No of tests: 23'
我使用下面的正則表達式:
re.findall('No of tests: \d+',s)
而且很顯然,正則表達式返回一個空列表。任何想法爲什麼?
您的字符串在數字之前包含2個空格。
使用\s*
來匹配任何零個或多個空格字符是一個好主意,當輸入字符串是用戶定義的並且空格可能以不同的數字出現時。要確保有一個或多個空格,請使用\s+
。
因此,建議使用
r'No\s+of\s+tests:\s*\d+'
注意,原始字符串字面量在Python定義正則表達式模式時是最好的(你不會得到任何問題,是由於逃避特殊字符,而不是這裏的情況,雖然)。
有一個拼寫錯誤,'/ d +'必須寫成'\ d +'(即'r'No of tests:\ d +'')。修復了錯字之後,[該問題不再存在](https://ideone.com/Tv6M5y)。 –
這是一個錯字,問題依然存在。 – distrobyte
無法重現。我在Python 2.6.6和3.6.0上得到了'['No'tests:23']',正如所料。順便說一句,在任何包含反斜槓的正則表達式上使用原始字符串是一個好主意。 –