加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式知识汇总

发布时间:2020-12-14 02:24:44 所属栏目:百科 来源:网络整理
导读:1、选择PHP正则表达式处理函数库 常用的有两种,一种是基于perl语言,使用“preg_”为前缀命名的函数,表达式都应该被包含在定界符中,如斜线(/"), 另一种是由POSIX (Portable Operation System interface) 扩展语法的正则表达式,使用“ereg_”开头。php中

1、选择PHP正则表达式处理函数库

常用的有两种,一种是基于perl语言,使用“preg_”为前缀命名的函数,表达式都应该被包含在定界符中,如斜线(/"),

另一种是由POSIX (Portable Operation System interface) 扩展语法的正则表达式,使用“ereg_”开头。php中常用preg_.

常用函数:

preg_match()

preg_match_all()

preg_replace()

preg_split()

preg_grep();

preg_replace_callback()


2、正则表达式的组成:

由原子(如a到z)、元字符(*,+,?)及模式修正三部分组成。


3、正则表达式元字符:

正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。元字符既可以是放在 [] 中的任意单个字符(如 [a] 表示匹配单个小写字符 a ),也可以是字符序列(如 [a-d] 表示匹配 a 、 b 、 c 、 d 之间的任意一个字符,而 w 表示任意英文字母和数字及下划线),下面是一些常见的元字符:


. 匹配除 n 以外的任何字符(注意元字符是小数点)。
[abcde]匹配 abcde 之中的任意一个字符
[a-h] 匹配 a 到 h 之间的任意一个字符
[^fgh]不与 fgh 之中的任意一个字符匹配
w匹配大小写英文字符及数字 0 到 9 之间的任意一个及下划线,相当于 [a-zA-Z0-9_]
W不匹配大小写英文字符及数字 0 到 9 之间的任意一个,相当于 [^a-zA-Z0-9_]
s匹配任何空白字符,相当于 [ fnrtv]
S匹配任何非空白字符,相当于 [^s]
d 匹配任何 0 到 9 之间的单个数字,相当于 [0-9]
D不匹配任何 0 到 9 之间的单个数字,相当于 [^0-9]
[u4e00-u9fa5]匹配任意单个汉字(这里用的是 Unicode 编码表示汉字的 )


4、用“”取消一些特殊字符的意义,如“ “ ”,” * “,” + ”等,如果当做原子,必须像"、*、+这样使用。


5、修饰符:对大小写敏感

我们看到的('/^http://([w.]+)/([w]+)/([w]+).html/i')中的最后一个"i"就是修饰符,表示忽略大小写,还有一个我们经常用到的是"x"表示忽略空格。

◆i :如果在修饰符中加上"i",则正则将会取消大小写敏感性,即"a"和"A" 是一样的。

◆m:默认的正则开始"^"和结束"$"只是对于正则字符串如果在修饰符中加上"m",那么开始和结束将会指字符串的每一行:每一行的开头就是"^",结尾就是"$"。

◆s:如果在修饰符中加入"s",那么默认的"."代表除了换行符以外的任何字符将会变成任意字符,也就是包括换行符!

◆x:如果加上该修饰符,表达式中的空白字符将会被忽略,除非它已经被转义。

◆e:本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码。

◆A:如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比如说"/a/A"匹配"abcd"。

◆E:与"m"相反,如果使用这个修饰符,那么"$"将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式。

◆U:和问号的作用差不多,用于设置"贪婪模式"。


6、正则表达式限定符


上面的元字符都是针对单个字符匹配的,要想同时匹配多个字符的话,还需要借助限定符。下面是一些常见的限定符 ( 下表中 n 和 m 都是表示整数,并且 0<n<m) : *匹配 0 到多个元字符,相当于 {0,} ?匹配 0 到 1 个元字符,相当于 {0,1} {n}匹配 n 个元字符 {n,}匹配至少 n 个元字符 {n,m}匹配 n 到 m 个元字符 +匹配至少 1 个元字符,相当于 {1,} b匹配单词边界 ^字符串必须以指定的字符开始 $字符串必须以指定的字符结束

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读