python - 用于匹配某个内容直到某个点的正则表达式

标签 python regex string

我想匹配网址中的一些子字符串。

例如网址:-

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/

相关文章:

python - 0x8915有什么用?

python - 为什么 * 在 python 中声明变量之前使用

python - 用正则表达式置换矩阵的参数

java - 如何从 StringBuffer 中删除字符?

python - 使用 pandas 基于正则表达式替换 Substr

ios - 连接 2 个字符串(或数组)

编写两个 if 语句的 Pythonic 方式

python - 同一图中的条形图和计数图

string - Clojure 中搜索字符串向量

javascript - 在 JavaScript 中使用数组