一、正则表达式定义
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
二、非打印字符
\f
匹配换页符
\n
匹配换行符
\r
匹配回车符
\s
匹配任何空白字符,包括空格、制表符、换页符
\t
匹配一个制表符
\v
匹配一个垂直制表符
三、特别字符
$
匹配输入字符串的结尾位置
*
匹配前面的子表达式零次或者多次
+
匹配前面的子表达式一次或者多次
.
匹配换行符\n之外的任何单个字符
?
匹配前面的子表达式零次或一次
^
匹配输入字符串的开始位置,如果用在方括号表达式中,此时它表示不接受该字符集合
正则表达式匹配规则:
1.^once
—— 以once开头的字符串
2.once$
—— 以once结尾的字符串
3.^once$
—— 精确匹配once字符串
4.once
—— 匹配任何包含once的字符串
[a-z]
—— 匹配所有的小写字母
[A-Z]
—— 匹配所有的大写字母
[a-zA-Z]
—— 匹配所有的字母
[0-9]
==/d
—— 匹配所有的数字
[0-9\.\-]
—— 匹配所有的数字,点号和减号
[ \f\r\t\n]
—— 匹配所有的白字符
^[a-z][0-9]$
:以小写字母开头,数字结尾的字符串
^[^0-9][0-9]$
匹配不是以数字开头的字符串 与”&5”、”g7”及”-2”是匹配的,但与”12”、”66”是不匹配的
[^a-z]
//除了小写字母以外的所有字符
[^\\\/\^]
//除了()(/)(^)之外的所有字符
[^\"\']
//除了双引号(“)和单引号(‘)之外的所有字符
特殊字符"."
(点,句号)在正规表达式中用来表示除了“新行”之外的所有字符。所以模式"^.5$"
与任何两个字符的、以数字5结尾和以其他非“新行”字符开头的字符串匹配。模式”.”可以匹配任何字符串,除了空串和只包括一个“新行”的字符串。
字符簇 含义
^[a-zA-Z_]$
所有的字母和下划线
^[[:alpha:]]{3}$
所有的3个字母的单词
^a$
字母a
^a{4}$
aaaa
^a{2,4}$
aa,aaa或aaaa
^a{1,3}$
a,aa或aaa
^a{2,}$
包含多于两个a的字符串
^a{2,}
如:aardvark和aaab,但apple不行
a{2,}
如:baad和aaa,但Nantucket不行
\t{2}
两个制表符
.{2}
所有的两个字符
特殊字符"?"
与{0,1}
是相等的,它们都代表着:“0个或1个前面的内容”或“前面的内容是可选的”。
特殊字符"*"
与{0,}
是相等的,它们都代表着“0个或多个前面的内容”。