0

我有一个带有“ 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]

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

4

3 回答 3

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

于 2012-12-02T12:46:21.427 回答
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'...)
?>

应该管用 :)

于 2012-12-02T10:14:47.997 回答
0

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

/\<a\.*[link=(.*)\].*$/i
于 2012-12-02T10:09:24.337 回答