一、基础内容
1、通用原子
2、元字符
符号 | 意义 |
---|---|
. | 除了换行以外的所有字符 |
* | 匹配前面的内容出现 0 次及以上 |
? | 匹配前面的内容出现 0 次或 1 次 |
+ | 出现一次或多次 |
$ | 必须以它结尾 |
{n} | 恰巧出现 n 次 |
{n,} | 大于等于 n 次 |
{n,m} | 大于等于n,小于等于 m |
[] | 是一个集合,匹配中括号中的任意一个字符,如:[abc]即为匹配a或b或者c |
[^] | 取反 |
[-] | 代表一个范围,如[0-9],匹配即为 0123456789 |
() | 后项引用或者是当做一个整体 |
竖线 | 或者 |
3、模式修正符
i | 不区分大小写。 |
m | 将字符串通过分隔符进行分割,将字符串中的每一行分别进行匹配。 |
e | 将匹配出来的内容做一些php语法上的处理。 |
s | 修正 “.” 的换行。 |
U | 取消贪婪模式。 |
x | 忽略模式中的空白符。 |
A | 必须以这个模式开头。 |
D | 修正 “$” 对 “\n” 的忽略。 |
u | 做 utf-8 中文匹配的时候使用。 |
g | 该表达式可以进行全局匹配。 |
4、示例
<?php
$str = "123a12312123";
// $pattern = '/\d/'; //0-9的一个
// $pattern = '/\D/'; //非0-9的一个
// $pattern = '/\w/'; //a-z,A-Z,0-9 _ 的一个
// $pattern = '/\W/'; //非a-z,A-Z,0-9 _ 的一个
// $pattern = '/\s/'; //回车,换行,空格,tab的一个
// $pattern = '/\S/'; //非回车,换行,空格,tab的一个
// $pattern = '/[a-z]/'; //a-z范围的一个
// $pattern = '/[^a-z]/'; // 非a-z范围的一个
$pattern = '/./'; //除了换行的所有字符的一个
preg_match($pattern, $str, $match);
var_dump($match);
?>
二、后项引用
如果想只去除掉b标签,只保留里面的字符串,这里就需要用到后项引用。怎么样后项引用呢,就是将 .* 括起来。
然后在匹配的时候,写上 \1 ,\1 代表第一个括号里面匹配到的内容,当然为了防止 \ 将 1 转义掉,所以我们使用 \1