匹配某事物直到某个点的正则表达式

2024-04-26 02:51:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想匹配url中的一些子字符串。你知道吗

例如网址:

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来做这件事。我没有需要匹配的所有可能扩展的列表。你知道吗


Tags: 字符串gtrecomurl列表pdfwww
2条回答

试试这个:

/[^\.]*(\..*)$

从左到右,这表示:查找一个正斜杠,后跟除句点(“[^\.]”)以外的任何字符字符串任意次数(“*”),然后查找以句点(“\.”)开头的字符串,后跟任何剩余字符。但要从最后一刻开始做这一切(“$”)。我注意到“[^.]”似乎也代替了“[^\.]”,所以我的“\.”在这里可能是多余的。你知道吗

使用表达式r"(\.[^./]*$)"

最好从头到尾看:

从行尾开始,尽可能多地使用既不是/(因此整个匹配项属于最后一个路径元素)也不是.的文本字符,因此不超过可能的后缀。最后(在开头)匹配中必须有一个.,这样整个匹配就是最后一个path元素(通常是文件)的后缀(如果存在的话)。你知道吗

相关问题 更多 >