不是任何代码的一部分,只是试图更好地理解正则表达式
import re
test=re.findall('\s[0-9]+','hello 23and 4world ')
print test # works correctly
[' 23', ' 4']
但是
import re
test=re.findall('\S[0-9]+','hello 23and 4world ')
print test
我希望此输出为[],因为'\ S'匹配任何非空白字符,但输出为['23']
。任何解释都会有所帮助。
答案 0 :(得分:1)
2
是一个数字,但也是一个非空白字符。 \S
匹配2
和[0-9]+
匹配3
:
hello 23and 4world
^^-[0-9]+
^--\S
这意味着1234
也会匹配hello 1234and 4world
。
快速“调试”的一种方法是使用群组和an online tester:(\S)([0-9]+)
。