正则表达式匹配,匹配一段代码里的中文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式匹配,匹配一段代码里的中文相关的知识,希望对你有一定的参考价值。

我有这么一段话类型是String,要用正则表达式分别匹配出“请问公积金号4182561的贷款进度,十二月份资料交到银行的。”和“2月3日银行送报中心,当日审批通过,2月4日银行交接”(里面的中文是不确定的),分别放入两个String,要怎么实现啊,求教育

<div class="newsContentText"> <p style="line-height: 28px;">    
请问公积金号4182561的贷款进度,十二月份资料交到银行的。
</p> <hr size="2" width="90%" /> <p style="line-height: 28px;">    解答:</span>2月3日银行送报中心,当日审批通过,2月4日银行交接
</p> </div> </div>

<?php
$t='<div class="newsContentText"> <p style="line-height: 28px;">
请问公积金号4182561的贷款进度,十二月份资料交到银行的。
</p> <hr size="2" width="90%" /> <p style="line-height: 28px;"> 解答:</span>2月3日银行送报中心,当日审批通过,2月4日银行交接
</p> </div> </div><div class="newsContentText"> <p style="line-height: 28px;">
请问公积金号1的贷款进度,2月份资料交到银行的。
</p> <hr size="2" width="90%" /> <p style="line-height: 28px;"> 解答:</span>2月1日银行送报中心,当日审批通过,2月5日银行交接
</p> </div> </div><div class="newsContentText"> <p style="line-height: 28px;">
请问公积金号4181的贷款进度,3月份资料交到银行的。
</p> <hr size="2" width="90%" /> <p style="line-height: 28px;"> 解答:</span>2月2日银行送报中心,当日审批通过,2月6日银行交接
</p> </div> </div>';
$p='/<div.+?>\s*?<p.+?>\s*(?<q>.*?)\s*<\/p>\s*?<hr.+?<p.+?>\s*(?<a>.*?)\s*?<\/p>/s';//正则
//
preg_match_all($p,$t,$m);

var_dump($m['q']);//这数组里面是问题
var_dump($m['a']);//这数组里面是答案
===================
array
0 => string '请问公积金号4182561的贷款进度,十二月份资料交到银行的。' (length=55)
1 => string '请问公积金号1的贷款进度,2月份资料交到银行的。' (length=46)
2 => string '请问公积金号4181的贷款进度,3月份资料交到银行的。' (length=49)

array
0 => string '解答:</span>2月3日银行送报中心,当日审批通过,2月4日银行交接' (length=61)
1 => string '解答:</span>2月1日银行送报中心,当日审批通过,2月5日银行交接' (length=61)
2 => string '解答:</span>2月2日银行送报中心,当日审批通过,2月6日银行交接' (length=61)

=======
这里只能按题意条件给出答案,并不能让你抄回去就能包好。
参考技术A js版本:
var reg = /<p\s[^>]*>([\s\S]*?)</p>/ig;
var html = "你的html";
while(reg.test(html))
alert(RegExp.$1));
追问

为什么不行啊,我在线测试了一下正则表达式,但是出不来??

参考技术B 没有什么规律可寻,所以很抱歉,没有办法实现~~

PHP正则匹配替换图片地址

网上能找到很多匹配图片src的正则表达式和替换的实例,都是然并卵,不能马上解决问题。

只是要找到src里的那一段给替换掉就行了。

给一段内容:


$content = ‘<img src="http://www.domainname.com/600_0_100_1/1439035192.4102/1e45426fe3d5410eedd45a82d9a0aead.jpg" rel="12375880" />‘;

正则匹配替换:
preg_replace("/(<img .*?src=")(.*?)(".*?>)/is","${1}asdf${3}",$content);

$content只要是一个<img>标签里的全部内容就可以,将src里的内容单独圈起来,前后的内容都整个的包括起来,${1}和${3}就是src的前后内容,将src替换成想要的就行。

————————————————
版权声明:本文为CSDN博主「NaivenJer」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/the3z/article/details/47832857

以上是关于正则表达式匹配,匹配一段代码里的中文的主要内容,如果未能解决你的问题,请参考以下文章

PHP正则表达式匹配网页里的音标,会的进来帮忙搞定

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

mysql支不支持正则表达式里的零宽断言

PHP正则匹配替换图片地址

正则里的.*和.*?区别

匹配手机号码的一段正则表达式