在第一个字符比赛停止?

这个问题在这里已经有了答案:

  • 贪婪与不愿意与拥有量词7答案

  • +是一个贪婪的运算符,意味着它尽可能匹配,并且仍然允许其余的正则表达式匹配。 对于这一点,我建议使用否定的类含义的任何字符,除了: " ‘一个或多个’时代。

    /<a href="ftp:([^"]+)">/
    

    现场演示


    使你的正则表达式不太合理:

    /<a href="ftp:(.+?)">/
    //        here __^
    

    要么:

    /<a href="ftp:([^>"]+)">/
    

    但最好使用解析器。


    *+是绿色的(尽可能匹配)。 通过追加? 在他们之后,你可以做出非贪婪的。

    /<a href="ftp:(.+?)">/
    

    或者你可以指定排除"使用否定字符类( [^...] ):

    /<a href="ftp:([^"]+)">/
    

    顺便说一下,使用正则表达式来解析HTML并不是一个好主意。

    链接地址: http://www.djcxy.com/p/76899.html

    上一篇: Stop at first character match?

    下一篇: What does this regex `str.gsub(/\#{(.*?)}/)` do?