PHP - 用于拆分URL的正则表达式

时间:2012-12-02 09:54:27

标签: php regex

我的文字包含“a href”和“[link]”链接。我想preg_split这个文本,并有数组在[i]我可以找到链接

示例:

My text <a href="www.example.com">text</a> this continues [link=http://www.second.com]link[/link]

=>

[0] My text
[1] <a href="www.example.com">text</a>
[2] this continues
[3] [link=http://www.second.com]link[/link]

我应该如何写我的正则表达式?

3 个答案:

答案 0 :(得分:1)

(.+)(\<a.+\/a>)(.+)(\[link.+\/link])

产生

Match groups:
1.  My text
2.  <a href="www.example.com">text</a>
3.  this continues
4.  [link=http://www.second.com]link[/link]

http://rubular.com/r/8PEUbDX9zr

答案 1 :(得分:0)

我猜是这样的。假设一切都在同一条线上..

/\<a\.*[link=(.*)\].*$/i

答案 2 :(得分:0)

<?php
$text = 'My text <a href="www.example.com">text</a> this continues [link=http://www.second.com]link[/link]';


preg_match_all('/(?:href="|link=)(.*?)(?:"|\])/is', $text, $links);
// $links[1] = array('link', 'link', 'link'...)
$links = $links[1]; // $links = array('link'...)
?>

应该工作:)