不是以正则表达式结尾的特定单词

NOT a specific word at ending in regex

本文关键字:单词 结尾 正则表达式      更新时间:2023-09-26

我有这些字符串:

"/page/test/myimg.jpg"
"/page/test/"
"/page2/test/"
"/page/test/other"

我希望所有以/page/test开头的字符串都为true,但以.jpg结尾的字符串除外。

然后我做了:/^'/page'/test(.*)(?!jpg)$/。嗯,它不起作用。:''

它应该像这样返回:

"/page/test/myimg.jpg" // false
"/page/test/" // true
"/page2/test/" // false
"/page/test/other" // true

使用JavaScript轻松完成:

/^(?!.*'.jpg$)'/page'/test/

在锚定结束后使用负面观察:

/^'/page'/test(.*)(?<!'.jpg)$/

为了清楚起见,此正则表达式将匹配任何*未以.jpg:结尾的输入

^.*(?<!'.jpg)$

编辑(现在也必须使用JavaScript)

JavaScript不支持look-behinds,所以必须使用这个丑陋的选项,它规定最后4个字符中至少有一个必须不是.jpg:

^.*([^.]...|.[^j]..|..[^p].|...[^g])$