我有一個正則表達式與我想要的不匹配。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