可以用字符作为一个通配符来代替除换行符(n)之外的任一个字符。例如,正则表达式:
.at
可以与"cat"、"sat"、"#at"和"mat"等进行匹配。主要是用于在搜索文件时
也可以指定一个字符集:
[a-z]at
在方括号([])中的内容都是一个字符类--- 一个被匹配字符所属的字符集合。但是只匹配其中的一个字符。
同时我们也可以给出一个集合。
[aeiou]
可以用来表示元音字母。
也可以用来表示一个范围。也可以是一个范围集:
[a-zA-Z]
这个范围集代表任何的大小字母。
此外,还可以用集合来指明字符不属于某个集。例如:
[^a-z]
可以用来匹配任何不在a和z之间的字符。当把脱胎换骨字符号(^)包括在方括号里面时,表示否。
重复次数
"*"表示这个模式可以被重复0次或更多次,符号"+"则表示这个模式可以被重复1次或更多次。
[[:alnum:]]+
表示至少有一个字母。
子表达式
(very)*large
可以匹配 very large 、 large 、very very large 等。
子表达式记数
可以用在花括号({})中的数字表达式来指定内容允许重复的次数。可以指定一个确切的数字({3}表示重复3次),或者一个重复次数的范围
({2,4}表示重复2~4次),或是一个开底的重复范围({2,}表示至少要重复2次).
例如:
(very){1,3}
表示匹配"very"、"very very"、"very very very"。
定位到字符串的开始或末尾
脱字符号(^)用于正则表达式的开始,表示子字符串必须出现在被搜索字符串的开始字符处,字符"$"用于正则表达式的末尾。表示子字符串必
须出现在字符串的末尾。
例,以下是在字符串开始处匹配bob:
^bob
这个模式将匹配com出现在字符串末尾处的字符串:
com$
最后,这个模式将匹配只包含a到z之间一个字符的字符串:
^[a-z]$
分支
可以使用正则表达式中的一条竖线来表示一个选择。例如,如果要匹配com、edu或net,就可以使用如下所示的表达示:
com|edu|net
匹配特殊字符
如果要匹配特殊字符,例如,.、{或者$,就必须在它们前面加一个反斜杠()。如果要匹配一个反斜杠,则必须用两个反斜杠()来表示.
在PHP中,必须将正则表达式模式包括在一个单引号字符串中.
在POSIX正则表达式中,用于方括号外面特殊字符的摘要
字符 意义 字符 意义
转意字符 ) 子模式的结束
^ 在字符串开始匹配 * 重复0次或更多次
$ 在字符串末尾匹配 + 重复1次或更多次
. 匹配除换行符(n)之外的字符 { 最小/最大量记号的开始
| 选择分支的开始(或) } 最小/最大量记号的结束
( 子模式的开始 ? 标记一个子模式为可选的
在POSIX正则表达式中,用于方括号里面的特殊字符
字符 意义
转意字符
^ 非,仅用在开始位置
- 用于指明字符范围
常用的正则表达式
1、非负整数:”^d+$”
2、正整数:”^[0-9]*[1-9][0-9]*$”
3、非正整数:”^((-d+)|(0+))$”
4、负整数:”^-[0-9]*[1-9][0-9]*$”
5、整数:”^-?d+$”
6、非负浮点数:”^d+(.d+)?$”
7、正浮点数:”^((0-9)+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$”
8、非正浮点数:”^((-d+.d+)?)|(0+(.0+)?))$”
9、负浮点数:”^(-((正浮点数正则式)))$”
10、英文字符串:”^[A-Za-z]+$”
11、英文大写串:”^[A-Z]+$”
12、英文小写串:”^[a-z]+$”
13、英文字符数字串:”^[A-Za-z0-9]+$”
14、英数字加下划线串:”^w+$”
15、E-mail地址:”^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$”
16、URL:”^[a-zA-Z]+://(w+(-w+)*)(.(w+(-w+)*))*(?s*)?$”