【问题标题】:Regular expression for strings, which are no ended with a specified substring [duplicate]字符串的正则表达式,不以指定的子字符串结尾[重复]
【发布时间】:2013-01-23 02:06:18
【问题描述】:

请建议一个正则表达式来查找所有不以“.pdf”结尾的字符串。 所以,它应该找到“some string”和“some stringpdf”的stings,而不是像“some string.pdf”这样的字符串

谢谢, 阿列克谢·阿修廷

【问题讨论】:

  • 如果您只需要这些,您可以使用正则表达式查找以 .pdf 结尾的字符串,然后在匹配时拒绝它们,并接受其余的
  • @NannuoLei 不要考虑为此目的滥用正则表达式。
  • @Jack 你说得对,正则表达式对于这么小的任务来说太多了,谢谢你指出。

标签: javascript regex


【解决方案1】:

这是正则表达式

/^(?!.*\.pdf$).*/

示例:

var r =  /^(?!.*\.pdf$).*/;
r.test("some string");     //true
r.test("some stringpdf");  //true
r.test("some string.pdf"); //false

实际上,我推荐@Nannuo Lei 的建议。

【讨论】:

    【解决方案2】:

    如果你要测试单个字符串,你可以使用这个正则表达式

    /^(?!.*\.pdf$).*$/
    

    如果字符串中有多个要匹配的字符串,可以使用

    /(\s|^)(?![^\s]+\.pdf(\s|$))[^\s]+/
    

    【讨论】:

      猜你喜欢
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 2022-08-03
      • 1970-01-01
      相关资源
      最近更新 更多