PCRE匹配带或不带args的URL

时间:2013-03-14 08:25:14

标签: regex pcre

假设JS / CSS文件的给定URL有时会以“?v = xyz”等结尾。

如何在PCRE中捕获这两种情况,即

"/my/path/lib.js"

以下

"\.[js|css]$"

工作得很好。我想包括以下案例:

"/my/path/lib.js?v=1.4"

"/my/path/style.css?v=3"

我正在使用Lua-5.1 PCRE lib

> rex_pcre = require "rex_pcre"
> return rex_pcre.find("/my/path/jquery.css", "\.(?:js|css)(?:$|\?)")
stdin:1: nothing to repeat (pattern offset: 17)
stack traceback:
        [C]: in function 'find'
        stdin:1: in main chunk
        [C]: ?

1 个答案:

答案 0 :(得分:1)

您可以使用:

\.(?:js|css)(?:$|\?)

请注意[js|css]不是您认为的那样。它是一个字符类,它匹配cjs|中的一个字符,你想要一个组:(?:js|css)