我想匹配网址中的一些子字符串。
例如网址:-
www.google.com/images
www.google.com/images.pdf
目前我有re = r"([^.]*$)"
这对于情况 1 有效,但对于情况 2 则失败。
www.google.com/images.pdf
与 .pdf
匹配 -> 按预期工作
www.google.com/images
匹配 .com/images
-> 失败
我希望 re 在找不到 .
时不匹配,并从末尾找到第一个 /
。
请不要建议使用 .endswith
执行此操作。我没有需要匹配的所有可能扩展的列表。
最佳答案
使用表达式r"(\.[^./]*$)"
最好从头到尾看一遍:
从行尾开始获取尽可能多的文本字符,这些字符既不是 /
(因此整个匹配属于最后一个路径元素)也不是 .
所以不要更多比可能的后缀被吃掉。最后(在开头)匹配中必须有一个 .
,因此整个匹配是最后一个路径元素(通常是一个文件)(如果存在)的后缀。
关于python - 用于匹配某个内容直到某个点的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53489311/