php正则表达示的定界符
定界符,就是定一个边界,边界已内的就是正则表达示。
PHP的正则表达示定界符的规定如下:
定界符,不能用a-zA-Z0-9\ 其他的都可以用。必须成对出现,有开始就有结束。
php 正则表达示中的原子
所有可见不可见的字符就是原子
说明:我们见到的空格、回车、换行、0-9、A-Za-z、中文、标点符号、特殊符号全为原子。
int preg_match ( string $正则 , string $字符串 [, array &$结果] )
功能:根据$正则变量,匹配$字符串变量。如果存在则返回匹配的个数,把匹配到的结果放到$结果变量里。如果没有匹配到结果返回0。
事例:
<?php
$zz = '/ /';
$string = 'sssssw aaaaa';
if(preg_match($zz, $string, $matches)){
echo '匹配到了,结果为:';
var_dump($matches);
}else{
echo '没有匹配到';
}
?>
输出结果:
匹配到了,结果为:array(1) { [0]=> string(1) " " }
php正则表示中的元字符
+ 匹配最少1次前面的字符
* 匹配0次或者任意多次前面的字符
? 前面的字符出现0次或者1次,可有可无
. (点) 匹配除\n以外的所有字符
|(竖线),或者,优先级最低
^ (抑扬符),必须要以^之后的字符串开始
\b和\B 词边界和非词边界:
\b词边界,就是指必须要在最前或者最后。
\B非边界,就是不能在一个正则表达示的最前或者最后。
{m}有且只能出现m次
{n,m} 可以出现n到m次
{m,} 至少m次,最大次数不限制
php 正则达达示中的模式修正符
i 不区分大小写
s 识为一行
x 忽略空白字符
e 将匹配项找出来,进行替换
例:
<?php
$string = "{April 15, 2003}";
//'w'匹配字母,数字和下划线,'d'匹配0-9数字,'+'元字符规定其前导字符必须在目标对象中连续出现一次或多次
$pattern = "/{(\w+) (\d+), (\d+)}/i";
$replacement = "\$2";
//字符串被替换为与第 n 个被捕获的括号内的子模式所匹配的文本
echo preg_replace($pattern, $replacement, $string);
?>
输出结果:15
上例中\$2 指向的是正则表达示的第一个(\d+)。相当于把15又取出来了
替换的时候,我写上\$2。将匹配项取出来,用来再次替换匹配的结果。
U 贪婪模式控制
A 从目标字符串的开头开始匹配
D 结束$符后不准有回车
常用正则函数