1、关于正则表达式的() [] {}说明
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
(\s*)表示连续空格的字符串。
[] 是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。
{} 一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。
[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。
2、关于要匹配的次数
{n} 匹配前面的表达式重复n次,比如: "\w{2}" 相当于 "\w\w"; "a{5}" 相当于 "aaaaa"
{m,n} 匹配前面的表达式至少重复m次,最多重复n次,比如: "ba{1,3}"可以匹配 "ba"或"baa"或"baaa"
{m,} 匹配前面的表达式至少重复m次,比如: "\w\d{2,}"可以匹配 "a12","_456","M12344"...
? 匹配前面的表达式重复0次或者1次,相当于 {0,1},比如: "a[cd]?"可以匹配 "a","ac","ad"
+ 匹配前面的表达式至少出现1次,相当于 {1,},比如: "a+b"可以匹配 "ab","aab","aaab"...
* 匹配前面的表达式不出现或出现任意次(含0次),相当于 {0,},比如: "\^*b"可以匹配 "b","^^^b"...
3、匹配什么类型的字符
\d 任意一个数字,0~9 中的任意一个
\w 任意一个字母或数字或下划线,也就是
A~Z,a~z,0~9,_ 中任意一个
\s 包括空格、制表符、换页符等空白字符的其中任意一个
. 小数点可以匹配除了换行符(\n)以外的任意一个字符
4、字符串的开头,结尾及单词边界
^ 匹配与字符串开始的地方,不匹配任何字符
$ 匹配与字符串结束的地方,不匹配任何字符
\b 匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符
([\\s\\S]*) 匹配包括换行符在内的任意字符, ([\d\D]*) 和 ([\w\W]*)可以实现
/[ -~]/ 匹配所有的英文
/[^ -~]/ 匹配所有的非英文(比如中文)