x='andi'
print re.search('an[.]+',x)
它返回None
。它是否假设匹配字符串。 在文档中,.
(点)可以表示任何字符。并且+
意味着1次或更多次重复。因此在[.]+
中,它应该与字符串中的d
匹配。python正则表达式[。] +应该表示任何单个或重复字符
任何人都可以解释吗?为什么它会返回None
?
x='andi'
print re.search('an[.]+',x)
它返回None
。它是否假设匹配字符串。 在文档中,.
(点)可以表示任何字符。并且+
意味着1次或更多次重复。因此在[.]+
中,它应该与字符串中的d
匹配。python正则表达式[。] +应该表示任何单个或重复字符
任何人都可以解释吗?为什么它会返回None
?
当你使用:
print re.search('an[.]+', x)
它匹配字面点因为点是内部[ ]
即字符类,其中特殊的正则表达式元字符失去其特殊的意义。
您应该使用:
print re.search('an.+', x)
例子:
>>> print re.search('an.+', x).group()
andi
文件引用:[按照'[]']的're'文档(https://docs.python.org/3/library/re.html#regular-expression-syntax):“特殊字符失去其特殊含义例如,'[(+ *)]'将匹配任何文字字符''('',''+'',''''或'')''。 (请注意,字符类,例如'\ w'仍然有特殊含义,它只是特殊的单个字符,失去了特殊的含义)。 – ShadowRanger
@anubhava:对不起,迟到的回复。这是完美的人。我用[]不在正确的地方。非常感谢。 :-) – andio
你觉得呢'[]'呢? – njzk2