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

时间:2014-04-18 08:19:33

标签: python regex

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

1 个答案:

答案 0 :(得分:3)

您可以使用:

^.+?(?=\.html|$)
  • (?=...)是一个向前看,如果当前角色之后的内容与前瞻中的内容相匹配,它将匹配,而不“选择”这些字符。这是零宽度检查
  • .+?将匹配所有内容(至少一个字符),但会在第一次出现.html时停止(因此避免匹配123.html123中的123.html123.html
  • ^$匹配字符串的开头和结尾

请参阅demo here

关于您的解决方案,[^...]代表“一个字符,除了其中一个字符之外的任何字符”。