我对以下Python正则表达式的语义感到困惑:r"/actors(\\..+)?"
我浏览了关于正则表达式的Python文档部分,但是无法理解这个表达式。有人能帮我吗?
最佳答案
/ # literal /
actors # literal actors
( # starting a subpattern
\\ # (escaped) literal \
. # arbitrary character
.+ # 1 or more arbitrary characters
)? # ends the subpattern and makes it optional
这意味着,它匹配正斜杠、“actors”,然后可选地匹配反斜杠和2个或更多任意字符。
我想这里有个错别字。字符串不应该被标记为原始字符串,或者有一个反斜杠太多。在这两种情况下,都会出现转义
.
而不是转义\
后跟任意字符。这反过来又会匹配名为actors
的文件,这些文件的扩展名是任意的或丢失的。所以要么
"/actors(\\..+)?"
要么r"/actors(\..+)?"
。关于python - Python正则表达式(\.. +)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13021093/