Home >php教程 >php手册 >PHP函数preg_match_all正则表达式的简单应用

PHP函数preg_match_all正则表达式的简单应用

WBOY
WBOYOriginal
2016-06-13 11:03:121104browse

了解正则表达式之前,需要掌握一些常用的正则表达式的基础知识,这些如果能记住最好记住,记不住需要用的时候能查到就行,就几个特殊字符,所以说正则表达式玩的就是特殊,具体大家可以查看更加详细的说明。

preg_match_all函数具体说明大家可以查看PHP手册,本文使用preg_match_all用于测试正则表达的效果。

实例代码

$html = '<div id="biuuu">php100</div><div id="biuuu_2">php1002</div><div id="biuuu_3">php1003</div>';

实例要求:分别将每一个DIV元素的ID和内容取出,如biuuu,biuuu_2,biuuu_3,php100,php1002和php1003(一些常用的抓站方法就是这样匹配的)

分析:字符串是一个简单的HTML元素,每一个DIV元素对应该一个ID和内容,并且是独立的,首先考虑如何取出一个DIV内的ID值和内容,如:php100,然后匹配其它类似的元素。一个DIV中需要取出两个值,也就是两个匹配的表达式,第一个表达式用于匹配ID值(biuuu),第二个表达式用于匹配ID的内容(php100),正则表达式常用的表达式使用小括号,那么前面的元素将会变成如下形式:

<div id="(biuuu)">(php100)</div> <div id="(表达式1)">(表达式2)</div>

好,使用如上小括号把需要匹配的区域进行了划分,接下来就是如何匹配各个表达式内的内容,我们猜想一个ID可能是字母,数字或下划线,那这就变得简单了,使用中括号就可以实现,如下:

表达式1:[a-zA-Z0-9_]+ (表示匹配大小写字母,数字和下划线)

那如何匹配表达式2,因为ID的内容可以是任意的字符,但是要注意,不能匹配字符,因为如果匹配这两个字符将会把后面使用的DIV都匹配出来,因此需要排除这两个字符开始的元素,也就是不匹配以字符,如下:

表达式2:[^]+ (表示不匹配字符)

这样,需要匹配的子表达式就实现了,但是还要需要匹配一个

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn