高分求这个正则表达式的写法。

将“的”字到下一个字符(如:,|。|、|</p>|的)之间的字符串找出来。举例:<p>2010年中国的浏览器排行榜回顾</p><p>总结的浏览器,排行榜以的上数据。来自百... 将“的”字到下一个字符(如:,|。|、|</p>|的)之间的字符串找出来。

举例:
<p>2010年中国的浏览器排行榜回顾</p>
<p>总结的浏览器,排行榜以的上数据。来自百度指数的统的计</p>
匹配出:
 浏览器排行榜回顾
 浏览器
 上数据
 统
 计
==============================================
我自己写的的正则如下:
preg_match_all("#的.*?[,|。|的]{1}#",$str,$out);
print_r($out);

匹配结果有些乱码如下图:
展开
 我来答
lifecursor
2012-04-09 · TA获得超过221个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:166万
展开全部

(如:,|。|、|</p>|的)包不包括管道符号?

我想不包括。

PHP的不懂,

JAVASCRIPT你懂的,给你个基于它的解决方案,如果合适你照着改巴改巴就OK。

  <script type="text/javascript">

 

    var text = "<p>2010年中国的浏览器排行榜回顾</p><p>总结的浏览器,排行榜以的上数据。来自百度指数的统的计</p>";

var pattern = new RegExp("的(?:(?!的|,|。|</p>).)*","g");

    var result  = new Array();

    while((t = pattern.exec(text)) != null) {

        var subText = "Matched '" + t +

              "' at position " + t.index +

              " next search begins at position " + pattern.lastIndex;

result.push(subText + "\r\n");

    }

alert(result);

  </script>

追问
只想说,谢谢你。
追答
问题被解决就好。
本逸春vL
2012-04-09 · TA获得超过1567个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:651万
展开全部
主要是中文表达式的问题,你需要使用unicode模式。

<?php

header("Content-type: text/html; charset=utf-8");

$str = <<<EOT
<p>2010年中国的浏览器排行榜回顾</p>
<p>总结的浏览器,排行榜以的上数据。来自百度指数的统的计</p>
EOT;

preg_match_all('/的(.*?)(?=,|。|的|<\/p>)/iu',$str,$out);
print_r($out[1]);

?>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式