正则表达式问题: 提取单词
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
)
)
答案 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
)
)