对Java中正则表达式的一些理解
2016-12-11 22:26:18
正则表达式的意义:正则表达式是一个字符串处理工具,可以对字符串进行查找/提取/分割/替换等等,也可以对用户输入的内容进行匹配.
常用的预定义字符就不解释了,网上一搜一大堆,就说说怎么理解吧:
d是digit的意思,代表数字,所以/d是匹配数字;
s是space的意思,代表空白,所以/s可以匹配空白字符,包括空格,制表符,回车符,换页符,换行符等;
w是word的意思,代表单词,所以/w匹配单词字符,包括[0-9]/[a-z]/[A-Z]/(_)
大写的D/S/W刚好代表了匹配和小写相反的的字符
. 代表可以匹配一个任何的字符
- 表示范围,例如[0-9]
^ 表示否定,非的意思
&& 表示"与"运算,取两个范围的并集
如果要去两个范围的交集可以用 &&和 ^进行组合
如果要匹配中文可以用[\\u0041-\\u0056]这种形式,因为所有的中文字符的Unicode值是连续的,只要找出所有中文字符中最小的和最大的Unicode值,就可以用这种形式来进行匹配
贪婪模式:? * + {m} {m,} {m,n}
X? 表示X表达式出现零次或一次;X* 表示X表达式出现零次或多次;X+表示表达式出现一次或多次;X{m}表示X表达式出现m次;X{m,}表示X表达式至少出现m次,最多出现次数不限;X{m,n}表示X表达式至少出现m次,至多出现n次.
万事开头难,中间难,最后都很难