【问题标题】:Regular Expression only match if String ends with target仅当字符串以目标结尾时,正则表达式才匹配
【发布时间】:2014-08-29 11:35:59
【问题描述】:

我需要一个正则表达式,它仅在字符串以我要查找的目标结尾时才匹配。我需要找到一个具有特定扩展名的文件,问题是这个扩展名也出现在其他文件中。例如我有两个文件名为

B82177_2014-07-08T141507758Z.ccf

B82177_2014-07-08T141507758Z.ccf.done

我只想抓住其中的第一个,我的模式是:

.*\.ccf

但这两者兼而有之。

感谢任何建议,我是正则表达式的新手。

【问题讨论】:

    标签: regex


    【解决方案1】:

    VanilaJS 函数基础示例

    function isValidUrl(x){
      let expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)?/gi;
      let regex = new RegExp(expression);
      
      return x.match(regex) ? true : false
      
    }
    
    console.log( isValidUrl('www.domain.com') ) // true
    
    console.log( isValidUrl('nothing') ) // false

    【讨论】:

      【解决方案2】:

      $ 用于匹配字符串的结尾。 并且可以像这样使用

      "string"$
      

      喜欢

      xyz$
      

      如果你想以 xzy 结尾

      【讨论】:

        【解决方案3】:

        使用end anchor ($):

        .*\.ccf$
        

        这将匹配任何以.ccf 结尾的字符串,或者在多行模式下,任何以.ccf 结尾的行。

        【讨论】:

        • 文件扩展名后面有查询字符串怎么办?
        • @AbrahamBrookes 这个问题专门询问以已知字符序列结尾的字符串。如果这不是您的用例,那么您需要更具体地了解您的实际需求。随意提出问题(但请注意,对于正则表达式问题,您确实应该解释您尝试过的内容)。
        猜你喜欢
        • 2021-01-17
        • 2016-03-26
        • 2015-08-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-28
        • 1970-01-01
        • 2011-09-23
        相关资源
        最近更新 更多