字符串的正则表达式,不以指定的子字符串结尾[重复]
Posted
技术标签:
【中文标题】字符串的正则表达式,不以指定的子字符串结尾[重复]【英文标题】: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 你说得对,正则表达式对于这么小的任务来说太多了,谢谢你指出。 【参考方案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]+/
【讨论】:
以上是关于字符串的正则表达式,不以指定的子字符串结尾[重复]的主要内容,如果未能解决你的问题,请参考以下文章