如何剥离网址并将其放回原位?
答案 0 :(得分:6)
答案 1 :(得分:1)
regexp符合rfc3986
的网址的方法并不多作为C字符串,正则表达式将是:
"^(([^:/?#]+):)?(//([^/?#]*)|///)?([^?#]*)(\\?[^#]*)?(#.*)?"
enum {
URL = 0,
SCHEME_CLN = 1,
SCHEME = 2,
DSLASH_AUTH = 3,
AUTHORITY = 4,
PATH = 5,
QUERY = 6,
FRAGMENT = 7
};
其中enum表示哪些捕获索引对应于哪个url部分。
答案 2 :(得分:0)
如果您想将相同的网址重新放回其初始位置,为什么要首先将其删除/您想要做什么。更多的背景将有助于我们帮助您。
答案 3 :(得分:0)
您可能正在寻找[preg_replace_callback
](http://www.php.net。/ preg_replace_callback)。
它只是匹配正则表达式模式,将结果提供给您提供的函数,并将原始匹配替换为其返回值。
答案 4 :(得分:0)
Jeff Atwood对于您可能遇到的问题有informative post。
无论您使用何种编程语言和库,在使用简单的正则表达式替换时,在某些情况下都会遇到问题,例如 - http://www.codinghorror.com/blog/archives/001181.html--。
我不经常使用PHP,但问题归结为试图找出要在preg_replace调用中使用的模式。