我对以下 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
这意味着,它匹配正斜杠、“ Actor ”,然后是可选的反斜杠和 2 个或更多任意字符。
我想这里有一个错字。要么字符串不应该被标记为原始字符串,要么有一个反斜杠太多。在这两种情况下,都会有转义的 .
而不是转义的 \
后跟任意字符。这反过来会匹配文件,称为 actors
具有任意或缺少文件扩展名。
所以 "/actors(\\..+)?"
或 r"/actors(\..+)?"
。
关于Python 正则表达式(\..+)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13021093/