正则表达式原理与正则表达式与正则表达式常见的函数(python)中的定义一样。不过在PHP中正则表达式要放在定界符中即 " / 正则表达式 / "。当作为定界符的字符在表达式中时,用转义字符反斜线(\)来表示,对于要匹配的字符如果也是正则表达式中的原子的话也用找个反斜线来转义
1. 表达式与数组单元匹配
preg_grep(string str,array input);
<?php
$array1[0]="1234";
$array1[1]="123.4";
$array1[2]="12.34";
$array1[3]="1.234";
$array1[4]=".123";
$array1[5]="123.";
$newarray = preg_grep("/^(\d)?\.\d+$/", $array1);
var_dump($newarray);
?>
结果
2. 对整个字符串进行全局匹配
preg_match_all(string pattern,string input,array matches,int flags)
pattern为表达式,input为匹配字符串,matches为结果存放的数组,flags可为:
(1)PREG_PATTERN_ORDER(matches[0]用于存放全部模式匹配的结果,matches[1]用于存储其第一个子模式所匹配的字符串所组成的数组),matches之后的类似。
(2)PREG_SET_ORDER(matches[0]用于存放第一次匹配到的结果,matches[1]用于存储其第二次匹配到的结果),matches之后的类似)
(3)PREG_OFFSET_CAPURE(可选标记,如果选择则在输出每一个匹配结果的同时也将返回其附属的字符串偏移量)
若没有设定标记,则默认为PREG_PARRERN_ORDER。
3. 只匹配一次
preg_match(string pattern,string input,array matches,int flags),用法与第二个函数完全相同,不过当匹配到一个结果时就返回。
4. 正则表达式转义
preg_quote(string pattern,“string del”)
意思就是将所有正则表达式中的原子前面都加上转义字符()。pattern为表达式,del为可选参数,代表你想要转义的其他字符。
5. 执行正则表达式的搜索与替换
preg_replace(pattern,replacement,str,limit);pattern为表达式,replacement为匹配出来后要替换的字符串,str为被匹配的字符串,limit为替换次数。
6. 用正则表达式来进行字符串分割
preg_split(string pattern,string subject,int limit ,int flags)
pattern 为表达式,subject为被匹配的字符串,limit为匹配次数(为-1时即代表全部匹配),flags为标记:
PREG_SPLIT_NO+EMPTY:非空字符串不会被返回
PREG_SPLIT_DELIM_CAPTURE:定界符中的括号表达式也会被返回
PREG_SPLIT_OFFSET_CAPTURE:返回匹配结果并获得其附属的字符串偏移量。