PHP正则提取中文部分内容,怎么实现呀?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP正则提取中文部分内容,怎么实现呀?相关的知识,希望对你有一定的参考价值。

页面编辑后数据库内的代码如下:
-----------------------------------代码开始-----------------------------------
<br /><strong>
这里是我想要提取的中文部分一,</strong>这里是我想要提到的<font color="red">中文部分二</font>,<a href="www.baidu.com">百度</a>,这里是要提取的中文部份……<div id="main">这里也是需要提取的部分</div>…………以下省略N字
-----------------------------------代码结束-----------------------------------

而我想要得到的前台调用内容只需要中文就行了,如下:
-----------------------------------想要的文字开始-----------------------------------
这里是我想要提取的中文部分一,这里是我想要提到的中文部分二,百度,这里是要提取的中文部份……这里也是需要提取的部分…………以下省略N字
-----------------------------------想要的文字结束-----------------------------------

笔者经过对比发现,这些格式标签和CSS+DIV标签主要是由下面这些符号构成,比如"<" ">" "/" "a-z" "A-Z" '"' ,总结了下,无非就是用正则排除类似格式为:"<"(a-zA-Z\/)">"的标签,然后排除不显示就行了,不知道各位大虾是怎么做的,帮帮忙吧

中文可以用正则表达式进行匹配,但是具体匹配方法与中文的编码方式有关:


如果是GBK(GB2312、GB1080),那么中文的编码范围是:

\\x80-\\xff


如果是UTF-8编码,那么中文的编码范围是:

\\u4e00-\\u9fa5


那么匹配汉字的正则表达式可以是:

/[\\x7f-\\xff]+/

或者

/[\\u4e00-\\u9fa5]+/


例子代码,显示文件中的所有汉字(GBK编码):

<?php
  $s=file_get_contents(\'1.txt\');
  if (preg_match_all(\'/[\\x7f-\\xff]+/\', $s, $r))
    for ($i=1;$i<count($r[0]);$i++) echo "$i\\t".$r[0][$i]."\\n";
  
?>
参考技术A 写好了,过滤所有标签。。
<?php
$str = '<br /><strong>这里是我想要提取的中文部分一,</strong>这里是我想要提到的<font color="red">中文部分二</font>,<a href="www.baidu.com">百度</a>,这里是要提取的中文部份……<div id="main">这里也是需要提取的部分</div>';
$new = preg_replace('/\<.+?\>/i','',$str);
echo $new;
?>
参考技术B jscode: str.replace (/<.*?>/g, ''); 参考技术C $结果 = strip_tags($原内容);
只留文字,去除全部标签!
参考技术D php有自带的函数strip_tags(),不需要正则,效率还慢本回答被提问者采纳

php 正则表达式 匹配网站内容

我怎么匹配到这两个P 标签里的内容

<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的 <li></li>标签中的内容,可以用preg_match_all

//提取所有代码

$pattern = \'/<div class="nav" monkey="nav">(.+?)<div class="head-ad">/is\';

preg_match($pattern, $string, $match);

//$match[0] 即为<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码

echo $match[0];

    //然后再提取<li></li>之间的内容

$pattern = \'/<li.*?>(.+?)<\\/li>/is\';

preg_match_all($pattern, $match[0], $results);

$new_arr=array_unique($results[0]);

foreach($new_arr as $kkk)

    echo $kkk;

参考技术A preg正则

以上是关于PHP正则提取中文部分内容,怎么实现呀?的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式部分提取php代码((数组定义))

PHP正则表达式取文本中间内容。

php 正则表达式 匹配网站内容

PHP正则表达式提取IMG标签的问题

使用 PHP 正则表达式从 html 中提取 JSON 对象

php高手请进:正则提取超链接中的网址和标题,如果兼顾有双引号和单引号或没有引号的超链接?