当前位置:首页 » 编程语言 » php正则提取

php正则提取

发布时间: 2022-08-04 15:14:55

1. php正则提取字符串

有{} () [] <>可以
<?php
$str = '中文abcd123${1,2,3,4,5}.jpg[123123]444<44g>44.124(j)12g4';
$search ='/[{(\[<](.*?)[})\]>]/';
preg_match_all($search,$str,$r);
print_r($r[1]);
?>

2. php 正则提取网页中指定的信息并且整理成想要的格式

<?php
$Table='<tableborder="1"bordercolor="#666666"style="BORDER-COLLAPSE:collapse"cellspacing="0"class=tableborder><trclass="color-header"><tdwidth="100"align="center"nowrap>课程性质</td><tdwidth="100"align="center"nowrap>课程号</td><tdwidth="150"align="center"nowrap>课程名称</td><tdwidth="80"align="center"nowrap>考试类型</td><tdwidth="40"align="center"nowrap>学时</td><tdwidth="40"align="center"nowrap>学分</td><tdwidth="80"align="center"nowrap>成绩类型</td><tdwidth="60"align="center"nowrap>期末成绩</td><tdwidth="60"align="center"nowrap>总评成绩</td></tr><trclass="color-row"><tdnowrap>专业核心课</td><tdalign="center"nowrap>1091123</td><tdnowrap>软件工程</td><tdnowrap>考试</td><tdalign="right"nowrap>51</td><tdalign="right"nowrap>2.5</td><tdnowrap>期末考试</td><tdalign="right"nowrap>89</td><tdalign="right"nowrap>95</td></tr><trclass="color-row"><tdnowrap>学科基础课</td><tdalign="center"nowrap>1091134</td><tdnowrap>C++程序设计</td><tdnowrap>考试</td><tdalign="right"nowrap>51</td><tdalign="right"nowrap>2.5</td><tdnowrap>期末考试</td><tdalign="right"nowrap>87</td><tdalign="right"nowrap>86</td></tr></table>';//你所谓的部分网页源内容,我这里是赋值给一个变量,实际中,你怎么来,你自己写
/*过滤下多余的换行和空格*/
$Table=preg_replace('/s{2,}/','',$Table);
/*正则提取出每一行先*/
preg_match_all('/<trs+class="color-row">(([sS](?<!</tr>))*)</tr>/is',$Table,$Tr);
/*得到每一行(也就是每一个科目的成绩的一个数组),数组值是td单元格html代码,还不行,还需要进一步匹配数据*/
$ChengJiArray=$Tr[1];
/*设置一个变量,用于储存总共有多少学科,初始赋值一个空数组*/
$XueKeArray=array();
/*遍历匹配出来的表格行数组*/
foreach($ChengJiArrayas$Value){
preg_match_all('/<td[^>]*>([^<]*)</td>/is',$Value,$Td);//匹配每个单元格中的数据
$Data=$Td[1];//等到数据集合
/*构建一个记录各个项目的数组*/
$XiangMuArray=array('name'=>$Data[2],'type'=>$Data[6],'fenshu'=>$Data[7],'zongfenshu'=>$Data[8]);
/*给最后的学科数组赋值*/
$XueKeArray[]=$XiangMuArray;
}
/*清空不需要的变量和数组*/
unset($Table,$Tr,$ChengJiArray,$Value,$Td,$Data,$XiangMuArray);
/*最后打印一下结果数组用于测试,具体应用你自己写*/
print_r($XueKeArray);

运行结果截图:

3. PHP正则表达式抓取数据

$string_1 = '
<tr>
<td width=15% align=right><b>电话:</b></td>
<td width=85%>86666947</td>
</tr>
<tr>
<td align=right ><b>地址:</b></td>
<td >春熙路8号</td>
</tr>
<tr>
<td align=right ><b>人均:</b></td>
<td ><span class=f_red_14b>14</span>元</td>
</tr>
<tr>
<td align=right><b>菜系:</b></td>
<td>快餐/小吃</td>
</tr>
'
;
preg_match_all ("|<td[^>]*>([^(<b>)].*)</td>|", $string_1, $out, PREG_PATTERN_ORDER);
print_r($out[1]);

---------------------------------------------------------
输出结果为:
Array
(
[0] => 86666947
[1] => 春熙路8号
[2] => 快餐/小吃
)

4. PHP如何正则表达式提取网页内容

如果你要<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;

}

5. PHP正则提取 DIV CLASS 数据

用PHP正则表达式匹配,就可以提取class里面的数据,并将no去除,完整的PHP程序如下

<?php
$str='<divclass="lot-nums"><spanclass="no7"></span><spanclass="no8"></span><spanclass="no5"></span><spanclass="no9"></span><spanclass="no2"></span><spanclass="no4"></span><spanclass="no6"></span><spanclass="no0"></span><spanclass="no3"></span><spanclass="no1"></span></div>';
$regex='/<spanclass="no(d+)"/i';
preg_match_all($regex,$str,$result);
print_r($result[1]);
?>

运行结果

6. 关于PHP正则提取问题

$mode = "/tid=(\d*)/";

if(preg_match($mode,$url,$arr)){
$thread['modthreadkey'] = modauthkey($arr[1]);
}

7. php正则提取

可用如下的代码来实现:

<?php
$str1="|1234|#2354#@2314@
|1314|#2154#@2214@
|1234|#2354#@2314@
|1314|#2154#@2214@";
if(preg_match_all("/|(d{4})|#(d{4})#@(d{4})@/m",$str1,$out,PREG_PATTERN_ORDER))
for($i=0;$i<count($out[0]);$i++)
{
echo"{'".$out[1][$i]."','".$out[2][$i]."','".$out[2][$i]."'}<br/>";
}
?>

效果如下所示:

{'1234','2354','2354'}
{'1314','2154','2154'}
{'1234','2354','2354'}
{'1314','2154','2154'}

8. php正则表达式字符串中提取数字,并截取其中的6位

<?php
$str='b37ba964bb7dfab1869e1cf8';
$preg="/d/is";
preg_match_all($preg,$str,$arr);
$temp=implode('',$arr[0]);
echo$temp;//匹配的数字
echo'<br/>'.substr($temp,1,4);//第2位开始取4个
echo'<br/>'.substr($temp,2,5);//第3位开始取5个
?>

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

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


如果是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 ".$r[0][$i]." ";
}
?>
热点内容
javascript反编译 发布:2025-01-22 23:37:57 浏览:429
夏天来了你的巴氏奶存储对吗 发布:2025-01-22 23:37:56 浏览:203
求最大值c语言 发布:2025-01-22 23:22:35 浏览:247
一键清理系统脚本 发布:2025-01-22 23:21:10 浏览:59
防疫宣传脚本 发布:2025-01-22 23:21:05 浏览:632
编译程序编译后是什么语言 发布:2025-01-22 23:20:08 浏览:368
电脑文件夹设密码 发布:2025-01-22 23:17:21 浏览:7
anyconnect服务器地址2018 发布:2025-01-22 23:05:56 浏览:530
教师资格面试试讲脚本 发布:2025-01-22 22:51:37 浏览:684
python中reduce 发布:2025-01-22 22:50:42 浏览:272