鹿泽鹿泽  2024-09-02 14:03:12 鹿泽笔记 隐藏边栏  0 

在 PHP 中,我们进行字符串处理时,能用字符串处理函数时我们当然要使用简单的字符串处理函数,但字符串处理函数的能力是有限的,所以我们就需要利用一个更强大的工具,那就是正则表达式。

简述正则表达式

正则表达式是什么?

正则表达式就是描述字符串排列模式的一种自定义语法规则。正则表达式就是通过构建具有特定规则的模式,和输入字符串信息进行比较,然后进行分割、匹配、查找、替换等的相关操作。正则表达式不是 PHP 中独有的,多种语言均可以使用正则表达式,在这里我们介绍正则在 PHP 中的用法。

使用场合

  • PHP 中,如果可以用字符串处理函数完成的任务,我们就不要使用正则表达式。
  • 有一些复杂的操作,例如格式检验等,只能用正则表达式完成。
  • 正则表达式也是一个字符串,但是它是具有特殊意义的字符串。
  • 它具有一些编写规则,也是一种模式,也可以把它看做一种编程语言。
  • 只有把正则表达式运用到某个函数中使用,才能发挥出正则表达式的作用,否则,它便是一个简单的字符串。

例子

图片的匹配例子

"/\<img\s*src=\".*?\"\/\>/iu"

这就是匹配 HTML 中的一个图片标签,例如可以匹配

<img src="a.jpg"/>

PHP 中的正则表达式函数库

在 PHP 中,有两套正则表达式函数库。

  • POSIX 扩展的正则表达式函数(ereg)。
  • Perl 兼容的正则表达式函数(preg)。

Perl 兼容的函数库是后加的函数库,功能更加强大,另外 JavaScript 和 Perl 语言里面也会兼容这种模式,所以推荐学习 Perl 语言兼容的函数库。 在学习时,我们就需要学习下面两点:

  • 正则表达式的语法
  • PHP 中正则表达式的处理函数

正则表达式的语法

任何正则表达式都是由定界符号、原子、元字符、模式修正符号四部分来组成的。下面我们以上面的例子依次来介绍这四部分内容。”/\<img\ssrc=\”.?\”\/>/iu”

1、定界符号

除了字母,数字和反斜杠 \ 以外的所有字符均可以为定界符。上面的例子中,开头和末尾的两个斜线 / 便作为定界符,我们还可以利用其它字符来定义,例如 | |,{ },# #等等,不过我们一般是使用斜线 / 作为定界符。

2、原子

上面的例子中,img \s 均为原子。原子是正则表达式的最基本的组成单位,而且必须至少包含一个原子,正则表达式中可以单独使用的字符,就是原子。 使用时注意事项总结如下

  • 原子包括所有打印字符和非打印字符,打印字符就是我们可以在屏幕上看到的字符例如 abc 等等,非打印字符就是我们看不到的字符,例如空格,回车等。
  • . * + \? \<( \< >,所有有意义的字符,如果想作为原子使用,必须统统使用 \ 转义字符转义。
  • 转义字符 \ 可以将有意义的字符转为有意义的字符,例如 是元字符,代表匹配一个字符零到多次,但是 \ 就代表了 * 这个字符。
  • 另外转义字符还可以将没有意义的字符转成有意义的字符,例如 \d 可以表示任意一个十进制数字。
  • 自定义原子表,定义一个中括号,表示匹配中括号中的任何一个内容,注意是任何一个。

另外转义字符还可以将没有意义的字符转成有意义的字符,例如 \d 可以表示任意一个十进制数字。总结如下:

\d:表示任意一个十进制的数字。 \D:表示任意一个除数字以外的字符。 \s:表示任意一个空白字符,如空格、回车、\t、\n \S:表示任意一个非空白 \w:表示任意一个字,包括 a-z,A-Z,0-9,下划线_ \W:表示任意一个非字,\w 之外的任意一个字符

自定义原子表,定义一个中括号,表示匹配中括号中的任何一个内容,注意是任何一个。总结如下:

正则表达式 “/[123]/“ 和字符串 “abc2” 可以匹配成功。 正则表达式 “/[a-z]/“ 和字符串 “x3” 可以匹配成功。 正则表达式 “/[1-3a-z]/“ 和字符串 “x” 可以匹配成功。

在这里中括号里面写入 ^ 代表取反,表示除了原子表中的原子,但是 ^ 必须写在 [] 的第一个字符上。例如

a-z 代表除了 a-z 的所有字符 \\n\\t 代表除了换行和制表的所有字符

3、元字符

上面的例子中, ?均为元字符。元字符就是用来修饰原子的字符,不可以单独出现。 例如 代表匹配前面的原子零到多次,但如果想匹配 ,则必须要加转义号 \ 来表示 ,特殊地,. 点也可以表示原子。

元字符总结分类如下:

1)* 表示其前面的原子可以出现 0 至多次
2)+ 表示前面的原子可以出现 1 至多次,即至少一个原子
3)? 表示前面的原子可以出现 0 次或 1 次
4){ } 用于自己定义前面原子出现的次数,另外分为以下几种

{m},m 表示一个整数,则前面的数字必须出现 m 次 {m,n},m,n 表示两个整数,m<n,表示前面出现的原子最少出现 m 次,最多出现 n 次。 {m,} m 表示一个整数,表示最少出现 m 次,最多无限 所以 * 可以表示为 {0,},+ 可以表示为 {1,},? 表示为 {0,1}

5). 默认情况下,表示除换行符外任意一个字符,和 * 组合表示可以匹配任意字符串,和 + 组合表示至少一个字符串
6)^ 直接在一个正则表达式的第一个字符出现,表示字符串必须以这个正则表达式开始,例如

^okay,表示字符串必须以 okay 开头

7)$ 直接在一个正则表达式的最后一个字符出现,则表示字符串必须以这个正则表达式结尾,例如

okay$,表示字符串必须以 okay 结尾。 注意:^okay$ 只是匹配一个 okay 字符,若要匹配 okay 开头 okay 结尾,则正则表达式可以写为 ^okay.*okay$

8)| 表示或的关系,它的优先级是最低的,最后考虑它的功能 9)\b 表示一个边界,例如

字符串 this is island,那么 \bis\b 则可以匹配,它匹配的是中间的 is,is 两边是有边界的。

9)\B 表示一个非边界,例如

\Bis\b,则匹配第一个 is,\bis\B 则匹配第三个 is

10)() 括号,重点,作用总结如下

(1)将括号里面的元素作为一个大原子使用 即作为一个整体使用,例如 (abc)+,可以匹配 abcabc….

(2)改变优先级 加上括号可以提高其优先级别。

(3)作为子模式使用 正则表达式中添加括号相当于添加了子模式。全部匹配作为一个大模式,放到数组的第一个元素中,每个 () 是一个子模式按顺序放到数组的其它元素中去。 在下面所说的 preg_match 方法中,结果会被赋值到 $arr 变量中,先匹配外层模式,再匹配内层模式。

$pattern="/(\d{4}(\W)\d{2}\W\d{2})\s+(\d{2}(\W)\d{2}\W\d{2})\s+(?:am|pm)/"; //正则表达式模式 
$string="today is 2010/09/15 15:35:28 pm..."; //需要和上面模式字符串进行匹配的变量字符串 
if(preg_match($pattern, $string, $arr)){ 
print_r($arr); 
}

结果

Array ( [0] => 2010/09/15 15:35:28 pm [1] => 2010/09/15 [2] => / [3] => 15:35:28 [4] => : )

(4)取消子模式 就将它作为大原子或者改变优先级使用。 只要在模式前面加一个?: 就可以取消子模式,例如(?:am|pm) //即不把(am|pm)作为一个子模式,直接将 am|pm 看做一个整体来使用。

(5)反向引用 可以在模式中直接将子模式取出来,再作为正则表达式模式的一部分, 如果是在正则表达式像替换函数 preg_replace 函数中, 可以将子模式取出, 在被替换的字符串中使用 \1 取第一个子模式、 \2 取第二个子模式, …. \5 (注意是单引号还是双引号引起来的正则) “\1” 在双引号引起来的正则,它是可以解释转义字符的,所以 \1 必须要写成 \1 ‘\1’ 在单引号引起来的正则中,则不会出现这种情况,\1 仍然可以写成 \1 例如

$pattern="/\d{4}(\W)\d{2}\\1\d{2}\s+\d{2}(\W)\d{2}\\2\d{2}\s+(?:am|pm)/"; //正则表达式模式 
$string="today is 2010/09/15 15:35:28 pm..."; //需要和上面模式字符串进行匹配的变量字符串 
if(preg_match($pattern, $string, $arr)){ 
echo "正则表达式 <b>{$pattern} </b>和字符串 <b>{$string}</b> 匹配成功<br>";
 print_r($arr); echo '</pre>'; }

在上面的例子中,因为 (\W) 已经匹配了第一个斜杠 /,它已经作为第一个子模式保存起来了,我们想继续使用这个匹配,我们就可以用 \1 来表示,如果是单引号引起来的正则,则直接用 \1 来表示就可以了,后面的 \2 和它是同样的原理。

4、模式修正符号

上面的例子中,最后 / 后面的 i u 即为模式修正符号。

1)就是几个字母
2)可以一次使用一个,每一个都具有一定的意义,也可以连续使用多个符号
3)放在最后面,是对整个正则表达式调优用的,也可以说是对正则表达式功能的扩展。 归类如下: i:表示在和模式进行匹配时不区分大小写 m:将每一行字符视为新的一行,也就是换行符后任何一行都可以当做一个整体字符串,主要的影响就在于 ^ 号和 $ 号。 例如:

$pattern = '/^abc/m' 
$string ='cde abcd efg' //可以匹配成功,因为加入m之后,第二行的abcd也当做一行了,也算是以abc开头

s:如果没有使用这个模式修正符号,那么 “.” 是不能当做换行符的,加入 s,将字符串视为单行,那么 “.” 也就可以表示换行符了。 x:模式中的空白忽略不计,注意是模式中的。

$pattern = '/a b c/x' $string ='abc' //可以匹配成功,因为加入x之后,a b c直接当做abc来看

s:如果没有使用这个模式修正符号,那么 “.” 是不能当做换行符的,加入 s,将字符串视为单行,那么 “.” 也就可以表示换行符了。 x:模式中的空白忽略不计,注意是模式中的。

$pattern = '/a b c/x' $string ='abc' //可以匹配成功,因为加入x之后,a b c直接当做abc来看

e:正则表达式必须使用在 preg_replace 函数中使用 A:必须以正则表达式开头,也就相当于前面加了 ^ Z:必须以正则表达式结尾,相当于后面加了 $ U:取消贪婪模式,或者 .*? 也可以取消贪婪模式,不过两个同时使用时会导致相反的结果,相当于负负得正的影响,同时出现则会又开启了贪婪模式 。

综上所述,正则表达式的组成为 / 原子和元字符 / 模式修正符号,其中 / 为定界符号,不过有一些语言是不需要这个定界符的,例如 Python 等。

5、元字符的优先级(了解)

  • 1)\ 转义符最高
  • 2)(),(?:),{ },括号其次
  • 3)* + ? {} 4)^ $ \b 5)|

6、常用的正则表达式

1)校验数字的表达式

  • 1 数字:^[0-9]$
  • 2 n 位的数字:^\d {n}$
  • 3 至少 n 位的数字:^\d {n,}$
  • 4 m-n 位的数字:^\d {m,n}$
  • 5 零和非零开头的数字:^(0|[1-9][0-9])$
  • 6 非零开头的最多带两位小数的数字:^([1-9][0-9])+(.[0-9]{1,2})?$
  • 7 带 1-2 位小数的正数或负数:^(-)?\d+(.\d {1,2})?$
  • 8 正数、负数、和小数:^(-|+)?\d+(.\d+)?$
  • 9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
  • 10 有 1~3 位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
  • 11 非零的正整数:^[1-9]\d$ 或 ^([1-9][0-9]){1,3}$ 或 ^+?[1-9][0-9]$
  • 12 非零的负整数:^-[1-9][] 0-9”$ 或 ^-[1-9]\d$
  • 13 非负整数:^\d+$ 或 ^[1-9]\d|0$
  • 14 非正整数:^-[1-9]\d|0$ 或 ^((-\d+)|(0+))$
  • 15 非负浮点数:^\d+(.\d+)?$ 或 ^[1-9]\d.\d|0.\d[1-9]\d|0?.0+|0$
  • 16 非正浮点数:^((-\d+(.\d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]\d.\d|0.\d[1-9]\d))|0?.0+|0$
  • 17 正浮点数:^[1-9]\d.\d|0.\d[1-9]\d$ 或 ^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$
  • 18 负浮点数:^-([1-9]\d.\d|0.\d[1-9]\d)$ 或 ^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$
  • 19 浮点数:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d.\d|0.\d[1-9]\d|0?.0+|0)$

2)校验字符的表达式

  • 1 汉字:^[\u4e00-\u9fa5]{0,}$
  • 2 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
  • 3 长度为 3-20 的所有字符:^.{3,20}$
  • 4 由 26 个英文字母组成的字符串:^[A-Za-z]+$
  • 5 由 26 个大写英文字母组成的字符串:^[A-Z]+$
  • 6 由 26 个小写英文字母组成的字符串:^[a-z]+$
  • 7 由数字和 26 个英文字母组成的字符串:^[A-Za-z0-9]+$
  • 8 由数字、26 个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w {3,20}$
  • 9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
  • 10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
  • 11 可以输入含有 ^%&’,;=?$\“等字符:%&’,;=?$\x22+
  • 12 禁止输入含有~的字符:~\x22+

3)特殊需求表达式

  • 1 Email 地址:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)$
  • 2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
  • 3 InternetURL:[a-zA-z]+://\s 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
  • 4 手机号码:^(13 [0-9]|14 [5|7]|15 [0|1|2|3|5|6|7|8|9]|18 [0|1|2|3|5|6|7|8|9])\d {8}$
  • 5 电话号码 (“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX” 和”XXXXXXXX):^((\d {3,4}-)|\d {3.4}-)?\d {7,8}$
  • 6 国内电话号码:\d {3}-\d {8}|\d {4}-\d {7}
  • 7 证件号 (15 位、18 位数字):^\d {15}|\d {18}$
  • 8 短证件号码 (数字、字母 x 结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d {8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
  • 9 帐号是否合法 (字母开头,允许 5-16 字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
  • 10 密码 (以字母开头,长度在 6~18 之间,只能包含字母、数字和下划线):^[a-zA-Z]\w {5,17}$
  • 11 强密码 (必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间):^(?=.\d)(?=.[a-z])(?=.[A-Z]).{8,10}$
  • 12 日期格式:^\d {4}-\d {1,2}-\d {1,2}
  • 13 一年的 12 个月 (01~09 和 1~12):^(0?[1-9]|1 [0-2])$
  • 14 一个月的 31 天 (01~09 和 1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
  • 15 钱的输入格式:有四种钱的表示形式我们可以接受:”10000.00” 和 “10,000.00”, 和没有 “分” 的 “10000” 和 “10,000”:^[1-9][0-9]$
  • 16. 这表示任意一个不以 0 开头的数字,但是,这也意味着一个字符”0” 不通过,所以我们采用下面的形式:^(0|[1-9][0-9])$
  • 17. 一个 0 或者一个不以 0 开头的数字。我们还可以允许开头有一个负号:^(0|-?[1-9][0-9])$
  • 18. 这表示一个 0 或者一个可能为负的开头不为 0 的数字。让用户以 0 开头好了。把负号的也去掉,因为钱总不能是负的吧。下面我们要加的是说明可能的小数部分:^[0-9]+(.[0-9]+)?$
  • 19. 必须说明的是,小数点后面至少应该有 1 位数,所以”10.” 是不通过的,但是 “10” 和 “10.2” 是通过的:^[0-9]+(.[0-9]{2})?$
  • 20. 这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$
  • 21. 这样就允许用户只写一位小数。下面我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})(.[0-9]{1,2})?$
  • 22. 到 3 个数字,后面跟着任意个 逗号 + 3 个数字,逗号成为可选,而不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3}))(.[0-9]{1,2})?$
  • 23. 备注:这就是最终结果了,别忘了”+” 可以用”“替代如果你觉得空字符串也可以接受的话 (奇怪,为什么?) 最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里
  • 24. xml 文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.[x|X][m|M][l|L]$
  • 25. 中文字符的正则表达式:[\u4e00-\u9fa5]
  • 26. 双字节字符:\x00-\xff (包括汉字在内,可以用来计算字符串的长度 (一个双字节字符长度计 2,ASCII 字符计 1))
  • 27. 空白行的正则表达式:\n\s\r (可以用来删除空白行)
  • 28. HTML 标记的正则表达式:<(\S?)>>.?|<.? /> (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)
  • 29. 首尾空白字符的正则表达式:^\s|\s$ 或 (^\s)|(\s$) (可以用来删除行首行尾的空白字符 (包括空格、制表符、换页符等等),非常有用的表达式)
  • 30. 腾讯 QQ 号:[1-9][0-9]{4,} (腾讯 QQ 号从 10000 开始)
  • 31. 中国邮政编码:[1-9]\d {5}(?!\d) (中国邮政编码为 6 位数字)
  • 32. IP 地址:\d+.\d+.\d+.\d+ (提取 IP 地址时有用)

PHP 正则表达式处理函数

1.int preg_match ( string pattern, string subject [, array matches [, int flags]] )

用法:

  • 1)在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。
  • 2)如果提供了 matches,则其会被搜索的结果所填充。$matches [0] 将包含与整个模式匹配的文本,$matches [1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
  • 3)flags 参数自 PHP 4.3.0 起可用,flags 可以是下列标记: PREG_OFFSET_CAPTURE 如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其偏移量。

例如下面的例子,匹配一个 URL

$str="这是一个正则表https://www.bailuze.com/达式的匹配函数"; 
$url="/(https?|ftps?):\/\/((www|mail|news)\.([^\.\/]+)\.(com|org|net))/i"; 
if(preg_match($url, $str, $arr)){ 
echo "字符串中有正确的URL信息<br>"; 
echo '<pre>'; print_r($arr); echo '</pre>'; 
echo "主机:".$arr[2]."<br>"; 
}else{ 
echo "字符串中不包括URL"; 
}

2.int preg_match_all ( string pattern, string subject [, array matches [, int flags]] )

与 preg_match_all 用法完全一致,不过它匹配的是所有的信息。

上面的输出结果 $arr 的结果没有将一次次匹配的结果分开,也就是所有的子模式都写入一个数组中,没有将结果分成单独的一个数组。 结果中 第零个数组包含了所有的全模式,第一个数组包含了所有的第一个子模式。 可以通过修改上面的代码,实现结果的分开显示。

if(preg_match_all($url, $str, $arr,PREG_SET_ORDER)){ 
echo "字符串中有正确的URL信息<br>"; 
echo '<pre>'; 
print_r($arr); echo '</pre>'; 
echo "主机:".$arr[2]."<br>"; 
}else{ 
echo "字符串中不包括URL"; }

在上面的 preg_match_all 方法中,第四个参数传入 PREG_SET_ORDER,即可实现每一个全模式和子模式的分开展示。 其实,默认模式的参数即为 PREG_PATTERN_ORDER,传入该参数即相当于不传入参数。

3.mixed preg_replace(mixed pattern,mixed replacement,mixed subject [,int limit])

替换函数,pattern 是正则表达式,replacement 是替换成的内容,也就是把匹配到符合正则表达式的内容替换为 replacement,subject 是查找的字符串,即替换的是这个字符串里面的内容。

$str=" 字符串中php的替换函数,系统提供的 字符串中的替换函数,系统提供的 字符串中的替换函数,系统提供的 字符串中的替换函数,系统提供的 字lamp符串中的替换函数,系统php提供的 字符串中的替换函数"; 
echo $str."<br>"; echo preg_replace("/[a-zA-z]+/",'',$str);

执行该程序就会将 str 字符串中的字母替换为空。 另外,可以指定替换的次数,也就是第四个参数

$str=" 字符串中php的替换函数,系统提供的 字符串中的替换函数,系统提供的 字符串中的替换函数,系统提供的 字符串中的替换函数,系统提供的 字lamp符串中的替换函数,系统php提供的 字符串中的替换函数"; 
echo $str."<br>"; 
echo preg_replace("/[a-zA-z]+/",'',$str,3);

这样,就可以实现只替换三次。 另外,可以实现多对多数组的替换,这是一个比较常用的方法,例如

$str=" 字符串中php的替换函数,系统提供的 字符串中的替换函数,系统提供的 字符串中的替换函数,系统提供的 字符串中的替换函数,
系统提供的 字lamp符串中的替换函数,[b]系统php提供的 字符串中[/b]的替换函数,系统提供php的 字符串中的替换函数,系统提供的 
字符串中的替换函数,系统提供的 字符<b>apache</b>串中的替换函数,系统提供的 [u]mysql字符串中的替换函[/u]数,系统Apache提供的 
字符串中的MySQL替换函数,系php统提供的 [i]字符串中的替换函数[/i],系统提供的[size=7] 字符串中的php替换[/size]函数,系统提供的[color=Magenta] 
字linux符串中的替[/color]换mysql函数,系统提供的php 字符串中的替换函数,系统提供的 字符串中的替换函数,系统php提供的 字符串中的替换函数,系统提供的 
字[align=center]符串[b]系统php提供的 字符串中[/b]中的替换函数[/align],系[b]系统php提供的 字符串中[/b]统提php供的 字符串中的替换函数,系统提供的";

echo $str."<br>";

$ubbcodes=array(
'/[b](.*?)[\/b]/i',
'/[u](.*?)[\/u]/i',
'/[i](.*?)[\/i]/i',
'/[color=(.*?)](.*?)[\/color]/',
'/[size=(.*?)](.*?)[\/size]/',
'/[align=(.*?)](.*?)[\/align]/'
);

$htmls=array(
'<b>\1</b>',
'<u>\1</u>',
'<i>\1</i>',
'<font color="\1">\2</font>',
'<font size="\1">\2</font>',
'<p align="\1">\2</p>'
);

echo preg_replace($ubbcodes,$htmls,$str);

上面就可以实现中括号标签转化为 HTML 标签。 好,关于正则表达式函数,掌握这三个就基本够用了,其它的还有正则表达式分割函数,直接用 PHP 里面的字符串分割即可,不在此叙述了。

本篇介绍了正则表达式的相关语法以及在 PHP 中的正则表达式匹配函数,以上所有便是 PHP 正则表达式的相关内容,希望对大家有帮助~

1、文章版权归作者所有,未经允许请勿转载。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505