PHP中用preg_match_all匹配书名号的问题

我想找出一段文字里所有包含书名号《》或者半角<>中的内容,比如:我喜欢《钢铁是怎样炼成的》和《春秋》和<WhoAmI>,想把里面所有的书名号内容提取出来,显示结果为:钢铁... 我想找出一段文字里所有包含书名号《》或者半角<>中的内容,比如:我喜欢《钢铁是怎样炼成的》和《春秋》和<Who Am I>,想把里面所有的书名号内容提取出来,显示结果为:
钢铁是怎样炼成的
春秋
Who Am I
用PHP如何实现?我发现使用preg_match_all有可能出现乱码,有没有其他好的办法?
展开
 我来答
raincenatyahoo
2009-05-05 · TA获得超过1103个赞
知道小有建树答主
回答量:554
采纳率:0%
帮助的人:407万
展开全部
<?php
$subject = "我喜欢《钢铁是怎样炼成的》和《春秋》和<Who Am I> ";
$result = array();
preg_match_all('/(?<=<)(\w| )*(?=>)|(?<=《)[\x{4e00}-\x{9fff}]*(?=》)/mu', $subject, $result);
print_r($result[0]);
?>

不知你的编码格式是什么?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gbgaobo5t
2009-05-05 · 超过25用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:77.3万
展开全部
正则我先麻烦你用这个最笨的方法吧!!!
<?php
$subject = "我喜欢《钢铁是怎样炼成的》和《春秋》和<Who Am I> ";

$subject =str_replace('我喜欢','',$subject );
$subject =str_replace('和','',$subject );
$subject =str_replace('《','',$subject );
$subject =str_replace('》','',$subject );
$subject =str_replace('<','',$subject );
$subject =str_replace('>','',$subject );
echo $subject;
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
27270543
2009-05-05 · 超过32用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:101万
展开全部
$subject = "我喜欢《钢铁是怎样炼成的》和《春秋》和<Who Am I> ";
preg_match_all('/《.*?》/is',$subject,$title);
var_dump($title['1']);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-05-05
展开全部
楼上的大哥,这样不行啊?报错
Warning: preg_match_all() [function.preg-match-all]: Compilation failed: invalid UTF-8 string at offset 23 in
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式