PHP正则表达式:从<a>lucky <b>charms</b></a>中提取幸运符和魅力

时间:2013-02-25 22:58:53

标签: php expression

正则表达式问题: 提取单词

lucky
charms

来自字符串:

<a>lucky <b>charms</b></a>

我的尝试:

preg_match_all("/<(.*)>(.*)<\/(.*)>+/is", $text, $matches);
print_r($matches);

结果:

Array
(
    [0] => Array
        (
            [0] => <a>lucky <b>charms</b></a>
        )

    [1] => Array
        (
            [0] => a>lucky <b>charms</b
        )

    [2] => Array
        (
            [0] => 
        )

    [3] => Array
        (
            [0] => a
        )

)

2 个答案:

答案 0 :(得分:0)

如果您始终拥有该结构,则可以使用:

preg_match("#<(.*?)>(.*?)<(.*?)>(.*?)</\\3></\\1>#is", '<a>lucky <b>charms</b></a>', $matches);

哪个$matches包含:

array(5) {
  [0]=>
  string(26) "lucky charms"
  [1]=>
  string(1) "a"
  [2]=>
  string(6) "lucky "
  [3]=>
  string(1) "b"
  [4]=>
  string(6) "charms"
}

答案 1 :(得分:0)

结束标记和下一个开始标记之间的所有内容

preg_match_all("/\>([^\<]+)\</is", $text, $matches);

然后您想要的匹配位于$matches[1]

Array
(
    [0] => Array
        (
            [0] => >lucky <
            [1] => >charms<
        )
    [1] => Array
        (
            [0] => lucky 
            [1] => charms
        )
)