奥卡姆 |正则运算符
OCaml | regex operator
我的正则表达式与我想要的不匹配。
"/.*\.\(css\)\|\(js\)\|\(png\)"
目前正在匹配:
/static/css/main.css
但是不匹配:
/static/js/prettify.js
或者:
/static/img/preview.png
对于我遗漏的任何建议,我将不胜感激。谢谢
让我们在没有特定语言引用的情况下简化您的正则表达式:
.*\.(css)|(js)|(png)
↑
[ ]|[ ]|[ ]
您正在匹配 /static/css/main.css
,因为第一个 |
适用于模式 .*\.(css)
。您应该在扩展名周围添加另一个括号:
.*\.((css)|(js)|(png))
现在 .*\.
捕获第一部分(在扩展之前),然后您正在寻找 css
、js
或 png
.
在你的语言中,我想它会是这样的:
/.*\.\(\(css\)\|\(js\)\|\(png\)\)
我的正则表达式与我想要的不匹配。
"/.*\.\(css\)\|\(js\)\|\(png\)"
目前正在匹配:
/static/css/main.css
但是不匹配:
/static/js/prettify.js
或者:
/static/img/preview.png
对于我遗漏的任何建议,我将不胜感激。谢谢
让我们在没有特定语言引用的情况下简化您的正则表达式:
.*\.(css)|(js)|(png)
↑
[ ]|[ ]|[ ]
您正在匹配 /static/css/main.css
,因为第一个 |
适用于模式 .*\.(css)
。您应该在扩展名周围添加另一个括号:
.*\.((css)|(js)|(png))
现在 .*\.
捕获第一部分(在扩展之前),然后您正在寻找 css
、js
或 png
.
在你的语言中,我想它会是这样的:
/.*\.\(\(css\)\|\(js\)\|\(png\)\)