【发布时间】:2011-03-27 16:52:56
【问题描述】:
寻找与以下相对 URL 匹配的正则表达式:
所有 url 都以 /abc/ 开头,但我们不知道它在哪里结束,并且末尾没有任何文件扩展名。
/abc/xyz
/abc/part1/part2
/abc/红/蓝/白/绿/黑
等等。
有什么帮助吗?
【问题讨论】:
-
您对哪种编程语言感兴趣?
标签: c# regex url relative-path
寻找与以下相对 URL 匹配的正则表达式:
所有 url 都以 /abc/ 开头,但我们不知道它在哪里结束,并且末尾没有任何文件扩展名。
/abc/xyz
/abc/part1/part2
/abc/红/蓝/白/绿/黑
等等。
有什么帮助吗?
【问题讨论】:
标签: c# regex url relative-path
我在这里写的答案是针对 PHP 的;在我写它的那一刻,你没有报告你有兴趣得到答案的编程语言。
如果你想要一个正则表达式来检查路径是否以/abc/开头
preg_match('|^/abc/.*$|i', $path);
如果你想要一个返回/abc/之后部分的正则表达式
preg_match('|^/abc/(.*)$|i', $path, $matches);
在这两种情况下,都可以避免使用正则表达式;你可以使用字符串函数。
【讨论】:
试试这个正则表达式:
/abc/(?:[A-Za-z0-9-._~!$&'()*+,;=:@]|%[0-9a-fA-F]{2})*(?:/(?:[A-Za-z0-9-._~!$&'()*+,;=:@]|%[0-9a-fA-F]{2})*)*
【讨论】:
[、]、^,在 URL 路径段中不是有效字符;而% 仅在后跟两个十六进制数字时才允许使用。但是,:、* 和 ~ 是允许的。
/^\/abc\//
但是我的猜测是你在问题中遗漏了一些东西......
【讨论】: