对于一个网络应用程序,我正在尝试提出一个javascript正则表达式匹配任何没有结束的东西.json.听起来很简单,但我发现它非常难受.
我首先想要这样做:^.*(?!\.json$),但这显然不起作用,因为它只是匹配整个字符串.然后我尝试^[^\.]*(?!\.json$),但匹配ab在abc.json.
我到目前为止已经提出了两个正在执行此工作的正则表达式,但我希望有一个可以执行此操作的正则表达式.
// Match anything that has a dot but does not end in .json
^.*\.(?!json$)
// Match anything that doesn't have a dot
^[^\.]*$
Run Code Online (Sandbox Code Playgroud)
我喜欢http://regex101.com/#javascript来测试它们.
我使用正则表达式作为ExpressJS路由定义的一部分app.get(REGEXP, routes.index).
在 Java 应用程序中,我需要编写一个String包含 URI 的正则表达式,以便 URI 不包含像.js?,.css?和之类的字符序列.jpg?,但也不以.js,.css和结尾.jpg
我做了以下事情:
(?:.js|.css|.jpg)$|(?:.js[?]|.html[?]|.jpg[?])
Run Code Online (Sandbox Code Playgroud)
它基本上匹配所有以给定文件扩展名结尾或包含文件扩展名加问号的 URI。
我怎样才能对前面的条件进行否定?
例如,我希望以下 URI 将匹配
"/a/fancy/uri/.js/which/is/valid"
Run Code Online (Sandbox Code Playgroud)
但以下两者都不会
"/a/fancy/uri/which/is/invalid.js"
"/a/fancy/uri/which/is/invalid.js?ver=1"
Run Code Online (Sandbox Code Playgroud)