我有一个正则表达式与我想要的不匹配。OCaml |正则表达式运算符
"/.*\\.\\(css\\)\\|\\(js\\)\\|\\(png\\)"
目前这是匹配:
/static/css/main.css
但它不匹配:
/static/js/prettify.js
或者:
/static/img/preview.png
我会很感激的任何东西我的建议我错过了。谢谢。
我有一个正则表达式与我想要的不匹配。OCaml |正则表达式运算符
"/.*\\.\\(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''png'。试试这个'/.* \\。\\(\\(css \\)\\ | \\(js \\)\\ | \\(png \\)\\)' – Maroun