我非常擅長正則運算式,我可以在構建正則運算式時使用一些幫助,以便我可以針對特定域上的所有子路由,同時排除幾個特定的??子路由。
正則運算式將在 JavaScript 中使用(作為 Optimizely 軟體中的頁面定位)。
應該允許:
www.mydomain.com/**/*www.mydomain.com/foo/**/*
不應該允許
www.mydomain.com/foo/bar/**/*www.mydomain.com/baz/**/*
我最掙扎的部分是允許一切,也允許一切以結尾,/foo/...除了以 結尾/foo/bar/...,同時也排除以 結尾的一切/baz/...。
任何幫助都非常感謝,在此先感謝您!
uj5u.com熱心網友回復:
您可以使用否定前瞻斷言來排除特定模式:
^www\.mydomain\.com\/(?!(?:foo\/bar|baz)\/).*\/.*
演示:https ://regex101.com/r/w6MQA0/1
uj5u.com熱心網友回復:
使用這個(www.mydomain.com\/)(([a-z] \/)*(foo\/))?\*\*\/\*。它應該作業。
它在這種情況下作業:
`www.mydomain.com/**/*`
or
`www.mydomain.com/<any params may or may not be>/foo/**/*`
代碼:
var regx = /(www.mydomain.com\/)(([a-z] \/)*(foo\/))?\*\*\/\*/g;
ar = ['www.mydomain.com/**/*', 'www.mydomain.com/foo/**/*','www.mydomain.com/foo/bar/**/*','www.mydomain.com/baz/**/*']
regx.test(ar[0]) // true
regx.test(ar[1]) // true
regx.test(ar[2]) // false
regx.test(ar[3]) // false
演示:https ://regex101.com/r/05vUz8/1
其他參考正則運算式:
- https://regex101.com/r/NoDI87/1
- https://regex101.com/r/HFaQo0/1
uj5u.com熱心網友回復:
感謝您的回復,他們幫助我自己找到了解決方案:
domain\.com((?=\/foo)|(?!\/foo\/bar\/|\/baz\/)).*
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517812.html
