在项目中解析文件部分使用java Pattern与Matcher类,自然少不了正则啦,在此将正则基础符号概念部分总结一下,比较精简…
句点符号
. 任意单个字符
例:a.b 匹配三位长度字符串,中间任意字符;如a b,a1b,a-b等
方括号 圆括号
[] 单字符长度范围, () 分组(不限长度)
例:a[123]b 匹配三位长度字符串,中间指定字符;如a1b,a2b,a3b,()用法同理
或符号
| 或运算
例:(a|b|cc) 匹配a或b或cc,此处不可使用 []
星号
* 匹配左边字符0次或多次
例:a*[b] 匹配最后一位字符是b,前面字符全为a的字串或单个b字符,如ab,aaab,b
加号
+ 匹配左边字符1次或多次
例: a+[b] 匹配第二位是b字符,b字符前面一个或多个a字符的字符串,如aab,ab,aaab
问号
\? 匹配左边字符0次或一次(有或无此字符->有此字符也满足条件)
例:a?[ab] 匹配左边有a字符或无a字符,第二位为a或b的字符串,如a,ab,b
花括号
{n} | {m-n} 匹配左边字符恰好n次 或 m-n 次(连续性)
例:a{3}b只匹配字符串aaab
否符号
^ 非运算
例:[^a]b匹配第一个字符不是a,第二个字符是b的字符串
常用正则表达式符号
\s 等价于 [\t\n\r\f] 即tab制表符、换行符、回车符、换页符,其一,也就是空白字符
\d等价于 [0-9] 也就是数字字符
\w等价于 [A-Z0-9] 也就是字符,字母字符无论大小写都匹配哦
\S \D \W 即上面三种符号定义的“非”逻辑