正则表达式| 如果存在,则停止

use*_*661 -4 python regex

我需要一个正则表达式来匹配everything(任何字符)中的:
everything.html
everything
匹配.+.html字符串的末尾。
.html是可选的,但如果它存在,停止匹配。

Rob*_*bin 5

您可以使用:

^.+?(?=\.html|$)
Run Code Online (Sandbox Code Playgroud)
  • (?=...)是一个前瞻,如果当前字符之后的内容与前瞻内容之间的内容匹配,则将匹配该内容,而无需“选择”这些字符。零宽度检查
  • .+?将在第一次出现的匹配的一切(至少一个字符),但止动.html(因此避免以匹配123.html123123.html123.html
  • ^$ 匹配字符串的开头和结尾

在此处查看演示

关于您的解决方案,[^...]代表“一个字符,除内部列出的字符之外的任何字符”。