正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语言基本上都有正则表达式,如JavaScript、java等。其实,只有了解一种语言的正则使用,其他语言的正则使用起来,就相对简单些。好了,开始写正则了。
正则表达式在匹配字符串时,遵循以下2个基本原则:
1.最左原则:正则表达式总是从目标字符串的最左侧开始,依次匹配,直到匹配到符合表达式要求的部分,或直到匹配目标字符串的结束。
2.最长原则:对于匹配到的目标字符串,正则表达式总是会匹配到符合正则表达式要求的最长的部分;即贪婪模式
那怎么开始呢,首先从分隔符开始写起,常用包括 / ; #;~,用于表明一串正则的开始。如:‘/a.*a/’。当表达式有过多的转义字符时,建议优先使用#,如url;
知道开始和结尾的写法了,接下来就是中间的判断了。正则表达式是自左向右的顺序使用原子和元字符进行拼接。比如'<b>zxcv</b>',进行匹配时,‘/<b>.*<\/b>/’,其中.*代表zxcv 。那么通用原子和元字符有哪些呢?
有时候最后定界符会有一个字母,如‘/as.*/i’,那这个i又是什么呢,这就是模式修正符;
U 正则表达式的特点:就是比较“贪婪”,使用该模式修正符可以取消贪婪模式
例:
php常用正则函数;
匹配:preg_match()与preg_match_all()
1只会匹配一次,2会把所有符合的字符串都匹配出来,并且放置到matches数组中,而且这两个函数都有一个整形的返回 值。1是一维数组,2是二维数组
替换:preg_replace()
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
搜索subject中匹配pattern的部分, 以replacement进行替换。
正则 匹配div之间的内容
<?php
$str
= '<div style=
"width: 700px; font-size: 14px;word-break: break-all;word-wrap: break-word;"
class
=
"l"
>
2016年07月毕业武汉科技大学 本科 软件工程2012年07月毕业育才中学 高中 普通高中
</div>';
preg_match(
'~<div[^>]*?>([\s\S]*?)</div>~'
,
$str
,
$m
);
print_r(
$m
);