如何用正则表达式匹配可有可无的元素
目标URL的可能情况
1 2 |
https://www.domain.com/category/cat1 https://www.domain.com/category/cat1/cat2 |
由于出现了/cat2这个可有可无的元素,导致普通正则无法同时匹配这两个URL
需要用两个正则来匹配
1 2 |
^http.*\/(category)(\/(\w+))$ ^http.*\/(category)(\/(\w+))(\/(\w+))$ |
但是有没有办法可以用一个表达式匹配,其实是有的
1 |
^http.*\/(category)(\/(\w+))?(\/(\w+))?$ |
? 表达式表示Matches one or nothing, (\/(\w+))? 表示以 /cat# 为规则匹配一次且无匹配项时也能继续后续的匹配,而不会返回空数组。
There are no comments yet