笔试时一些选择题经常会考到正则表达式,故记录一下基本语法,供自己查阅,至于真正开发用到时现在都有自动生成的,感觉也不用刻意去记。
正则表达式一些基本的语法
一、两个特殊的符号‘^‘和‘$‘。他们的作用是分别指出一个字符串的开始和结束,如:
"^The":表示所有以"The"开始的字符串("There","The cat"等);
"of$":表示所以以"of"结尾的字符串;
"^abc$":表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了;
二、常见的还有‘*‘,‘+‘和‘?‘三个符号,表示一个或一序列字符重复出现的次数。*表示“零个或若干个”,+表示“至少一次或更多”,?表示“零个或者一个”。例子如下:
"ab*":表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……);
"ab+":表示一个字符串有一个a后面跟着至少一个b或者更多;
"ab?":表示一个字符串有一个a后面跟着零个或者一个b;
"a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b。
也可以使用范围,用大括号括起,用以表示重复次数的范围。
"ab{2}":表示一个字符串有一个a跟着2个b("abb");
"ab{2,}":表示一个字符串有一个a跟着至少2个b;
"ab{3,5}":表示一个字符串有一个a跟着3到5个b。
即‘*‘,‘+‘和‘?‘相当于"{0,}","{1,}"和"{0,1}"
注意,用大括号时必须指定范围的下限(如:"{0,2}"而不是"{,2}")。
三、符号‘|‘,表示“或”操作:
"hi|hello":表示一个字符串里有"hi"或者"hello";
"(b|cd)ef":表示"bef"或"cdef";
"(a|b)*c":表示一串"a""b"混合的字符串后面跟一个"c";
4)符号‘.‘可以替代任何字符:
"a.[0-9]":表示一个字符串有一个"a"后面跟着一个任意字符和一个数字;
"^.{3}$":表示有任意三个字符的字符串(长度为3个字符);
5)方括号表示某些字符允许在一个字符串中的某一特定位置出现:
"^[a-zA-Z]":表示一个以字母开头的字符串;
"[0-9]%":表示一个百分号前有一位的数字;
",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。
注:
1、也可以在方括号里用‘^‘表示不希望出现的字符,‘^‘应在方括号里的第一位。(如:"%[^a-zA-Z]%"表示两个百分号中不应该出现字母)。
2、必须在符号^.$()|*+?{\这些字符前加上转移字符‘\‘。但在方括号中,不需要转义字符。
四、\w:用于匹配字母,数字或下划线字符
如:"^\w+$" //由数字、26个英文字母或者下划线组成的字符串
五、\d:用于匹配从0到9的数字;
如:"^-?\\d+$" //整数
六、 \/ :表示字符“/”