修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。
方括号
方括号用于查找某个范围内的字符:
表达式 描述
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[a-Z] 查找任何从小写 a 到大写 Z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
[red|blue|green] 查找任何指定的选项。
元字符
元字符(Metacharacter)是拥有特殊含义的字符:
元字符 描述
. 查找单个字符,除了换行和行结束符。
\w 查找单词字符。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 查找位于单词的开头或结尾的匹配。
\B 查找不处在单词的开头或结尾的匹配。
\0 查找 NUL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
量词
量词 描述
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。
正则表达式中的预定义词:
预定义词 含义
\d 代表0~9的任何一个数字
\D 代表任何一个非数字字符
\s 代表空白字符,如“\t”、“\n”
\S 代表非空白字符
\w 代表可用作标识符的字符,但不包括“$”
\W 代表不可用作标识符的字符
常用的模式正则表达式:
类型 正则表达式 模式含义
数学类 ^\d+(\.\d+*$) 数字
^\d+$ 非负整数(正整数或0)
^[0-9]*[1-9][0-9]*$ 正整数
^((-\d+)|(0+))$ 非正整数(负整数或0)
^-[0-9]*[1-9][0-9]*$ 负整数
^-?\d+$ 整数
^\d+(\.\d+)?$ 非负浮点数(正浮点数或0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 正浮点数
^(-?\d+)(\.\d+)?$ 浮点整数
类型 正则表达式 模式含义
字符型 [\u4e00-\u9fa5] 中文字符
[^\x00-\xff] 双字节字符(包括汉字)
类型 正则表达式 模式含义
字符串类 ^[A-Za-z]+$ 由26个英文字母组成的字符串
^[A-Z]+$ 由26个大写英文字母组成的字符窜
^[a-z]+$ 由26个小写英文字母组成的字符窜
^[A-Za-z0-9]+$ 由数字和26个英文字母组成的字符串
^\w+$ 由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 或
/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/ E-mail地址
\n[\s|]*\r 空行
/<(.*)>.*<\/\1>|<(.*)\/>/ HTML标记
(^\s*)|(\s*$) 首位空格
^[a-zA-Z]+://(\w(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ URL
注意:方法中的“\”需要转义,所以在Web页面中应写为“\\”