Java的正则表达式(二)
1.选择匹配符的使用
| -- 匹配"|"之前或之后的表达式
2.限定符的使用
限定符用于指定其前面的字符和组合项连续出现多少次
(1)+ -- 指定字符重复1次或者n次(至少1次)
m+(abc)* -- 以至少1个m开头,后接任意个abc的字符串
(2)* -- 指定字符重复0次或者n次(注意与+相区别,+至少1次,*至少0次)
(abc)* -- 仅包含任意个abc的字符串
(3)? -- 指定字符重复0次或者1次(注意与+、*相区别,+和*至多n次,?至多1次)
m+abc? -- 以至少1个m开头,后接ab或abc的字符串
(4)
(4.1) {} -- 指定字符n次
[abcd]{3} -- 由abcd中字母组成的任意长度为3的字符串
(4.2) {n,} -- 指定至少n个匹配
[abcd]{3,} -- 由abcd中字母组成的任意长度不小于3的字符串
(4.3) {n,m} -- 指定至少n个但不多于m个匹配
[abcd]{3,5} -- 由abcd中字母组成的任意长度不小于3,不大于5的字符串
3.定位符的使用
定位符规定要匹配的字符串出现的位置,比如在字符串的开始还是在结束的位置
(1)^ -- 指定起始字符
^[0-9]+[a-z]* -- 以至少1个数字开头,后接任意个小写字母的字符串
(2)$ -- 指定结束字符
^[0-9]+\\-[a-z]+$ -- 以至少1个数字开头后接字符"-",并以至少1个小写字母结尾的字符串
(3)\\b -- 匹配目标字符串的边界(字符串的边界指的是子串间有空格或者是目标字符串的结束位置)
han\\b -- 表示匹配边界的han
(4)\\B -- 匹配目标字符串的非边界
han\\B -- 与\\b含义相反
4.分组使用
(1)(pattern) -- 非命名捕获.捕获匹配的子字符串.编号为零的第一个捕获是由整个正则表达式模式匹配的文本,其它捕获结果则根据左括号的顺序从1开始自动编号
(2)(?<name>pattern) -- 命名捕获.将匹配的子字符串捕获到一个组名称或编号名称中.用于name的字符串不能包含任何标点符号,并且不能以数字开头.可以使用单引号替代尖括号例如(?'name')