正则表达式知识汇总

前端之家收集整理的这篇文章主要介绍了正则表达式知识汇总前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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匹配任何空白字符,相当于 [ \f\n\r\t\v]
\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匹配单词边界 ^字符串必须以指定的字符开始 $字符串必须以指定的字符结束

原文链接:/regex/363037.html

猜你在找的正则表达式相关文章