【PHP正则表达式】
【PHP正则表达式】
最近写题总是遇到php正则表达式的匹配函数,于是进行一个总结。
1、什么是正则表达式
是php在进行搜索时用于匹配的模式字符串。一般用于php对特定字符序列的替换和搜索。
2、正则表达式函数
- preg_match($pattern,$str),用于在str中寻找pattern字符串
- preg_match_all($pattern,$str),用于统计str中pattern字符串出现的次数
- preg_replace($pattern,$replace,$str),用于将str中的pattern字符串替换成replace字符串
3、正则规则
一般正则表达式如下:
$test="/test/i"
其中'test'为模式,/为分隔符,i为修饰符。
修饰符:
修饰符 | 作用 |
---|---|
i | 不区分大小写 |
m | 执行多行搜索 |
u | 启用UTF-8进行匹配 |
g | 查找多个匹配项,如果不加只会找到一个结果 |
模式:
表达式 | 描述 |
---|---|
[abc] | 查找括号中的字符 |
[^abc] | 查找不在括号中的字符 |
[0-9] | 查找0-9之间的字符 |
元字符:
元字符 | 描述 |
---|---|
| | 用于分割多个匹配项 |
. | 匹配换行符(\n,\r)之外的任何单个字符 |
+ | 匹配前面的子表达式一次或多次 |
\w | 匹配字母、下划线、数字,相当于[A-Za-z0-9] |
\b | 匹配单词边界,er\b可以匹配nerver中的er,不能匹配verb中的er |
表示只匹配n次,er{2}只能匹配含有两个er的单词 | |
表示至少匹配n次 | |
至少匹配n次,至多匹配m次 |
示例:
$file = preg_replace("/[^a-zA-Z0-9.]+/", "", $file);
会把字符串中非字母或数字或点号的其他字符去掉