正则表达式\和\ S解释

时间:2016-05-25 21:44:03

标签: regex

不是任何代码的一部分,只是试图更好地理解正则表达式

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']。任何解释都会有所帮助。

1 个答案:

答案 0 :(得分:1)

2是一个数字,但也是一个非空白字符。 \S匹配2[0-9]+匹配3

hello 23and 4world 
      ^^-[0-9]+
      ^--\S

这意味着1234也会匹配hello 1234and 4world

快速“调试”的一种方法是使用群组和an online tester(\S)([0-9]+)