【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);
会把字符串中非字母或数字或点号的其他字符去掉

浙公网安备 33010602011771号