我有一个网址,我想完全匹配它的结尾。
网址是[some_host] / url / action 如果网址包含" url / action"在其中我希望它能匹配。
附加规则1: 该URL可以在末尾包含更多数据,例如" [some_host] / URL /动作/ newTransaction /" - 在这种情况下,我希望正则表达式与它不匹配。
附加规则2: 但是,如果URL是" [some_host] / url / action?t = true,那么我希望正则表达式匹配。
我的正则表达式应该是什么样的?
编辑: 一些例子:
"[some_host]/url/action" -- should match.
"[some_host]/url/action/" -- should match.
"[some_host]/url/action?t=true" -- should match
"[some_host]/url/action/?t=true" -- should match
"[some_host]/url/action/[ANYTHING_ELSE]" -- should NOT match
答案 0 :(得分:0)
这适用于您的情况:
(http|https):\/\/[\w_-]+(?:(?:\.[\w_-]+)+)\/url\/action(?!\/\w)[\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-]*
使用上述正则表达式中的完整匹配。
答案 1 :(得分:0)
这不是正则表达式,很冗长。但是,很容易理解。
string url = "";
bool b1 = url.EndsWith("/url/action");
bool b2 = url.EndsWith("/url/action/");
bool b3 = url.EndsWith("/url/action/?t=true");
bool b4 = url.EndsWith("/url/action/?t=false");
bool match = b1 || b2 || b3 || b4;