高分求这个正则表达式的写法。
举例:
<p>2010年中国的浏览器排行榜回顾</p>
<p>总结的浏览器,排行榜以的上数据。来自百度指数的统的计</p>
匹配出:
浏览器排行榜回顾
浏览器
上数据
统
计
==============================================
我自己写的的正则如下:
preg_match_all("#的.*?[,|。|的]{1}#",$str,$out);
print_r($out);
匹配结果有些乱码如下图: 展开
(如:,|。|、|</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>
只想说,谢谢你。
问题被解决就好。
<?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]);
?>