从文本中删除网址

时间:2009-05-04 07:41:18

标签: php regex url

如何剥离网址并将其放回原位?

5 个答案:

答案 0 :(得分:6)

使用正则表达式..您可以使用正则表达式轻松检测URL。

Detecting a URL

Replacing a Pattern

答案 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调用中使用的模式。