我有以下网址作为主题
localhost/hx
localhost/h.php
localhost/h/x
localhost/h/x/y
localhsot/h?hello
localhost/h
目前我的模式类似/localhost/h[/]*/i
,但这不起作用。
我不想匹配第1行或第2行,但其他行有效。
问题1:如果我从与/
不匹配的模式中删除?
,我将无法使*
或localhost/h
成为可选项。< / p>
问题2:我无法在第5行逃离?
,我尝试了\\
和\
,但都没有效果。
答案 0 :(得分:1)
我使用:
/localhost\/h(?:\/|\?|$)/
答案 1 :(得分:1)
您有两个条件:
h
h
,然后是/
或?
以及所以你需要一个替代匹配。
正确的正则表达式为localhost\/h(?:$|[?\/].+)
Demo Here
什么是匹配localhost/h
litteraly然后用两个替代打开非捕获组(?:
$
或|
/
或?
后跟至少一个字符.+
答案 2 :(得分:1)