1.正则规则:
??????? 1.String? regex? =? "[1-9]"????????? 表示单个字符的取值范围是 1~9,注意是单个字符的取值范围
??????? 2.String? regex? =? "d"????????? "d"表示单个字符的类型是整型数字,注意是单个字符的取值范围
?????????? String? regex? =? "D"??????? "D"表示单个字符的类型是 非整型数字,"D" 和 "d" 是反义
??????? 3.String? regex? =? "d{1,9}"????? {最少出现次数,最多出现次数} 表示 最少出现1个 最多出现9个 的字符是整型数字?
???????????? String? regex? =? "d{1}"????? {必须出现次数} 表示 必须出现1个 的字符是整型数字
??????????? String? regex? =? "d{1,}"????? {至少出现次数} 表示 必须至少出现1个 的字符是整型数字
??????? 4.String? regex? =? "[abc]"???????????? 表示单个字符的取值范围是a~c,注意是单个字符的取值范围
??????? 5.String? regex? =? "[^abc]"??????? 表示单个字符的取值范围不在a~c,注意是单个字符的取值范围
??????? 6.String? regex? =? "[a-zA-Z]"??? 表示单个字符的取值范围不在a~z 或 A~Z,注意是单个字符的取值范围
??????? 7.String? regex? =? "[a-z[A-Z]]"(并集)???? "[a-z[A-Z]]" 等同于 "[a-zA-Z]",表示单个字符的取值范围不在a~z 或 A~Z?
???????? 8.String? regex? =? "[a-z&&[def]]"(交集)??? 表示单个字符的取值为 d 或 e 或 f
???????? 9.String? regex? =? "[a-z&&[^def]]"(减去)??? 表示单个字符的取值范围为a~z,但不包括 d 或 e 或 f
???????? 10.String? regex? =? "[a-z&&[d-f]]"(减去)??? 表示单个字符的取值范围为a~z,但不在d~f范围之间
??????? 11.String? regex? =? "..."??????????? "."表示单个字符匹配任意一个字符值
??????? 12.String? regex? =? "."??????????? "."表示转义为普通字符"." ;
??????????????????????????? 该转移之后普通字符"." 不再具有 匹配任意一个字符值的作用
??????? 12.String? regex? =? "s"??????????? "s"表示单个字符匹配空白字符
???????????? String? regex? =? "S"??????????? "S"表示单个字符不能匹配空白字符;"S" 等同于 "^s";
??????? 13. String? regex? =? "w"??????????? "w"表示单个字符匹配a~z 或 A~Z或 0~9;"w" 等同于 [a-zA-Z0-9]
?????????????? String? regex? =? "W"??????????? "W"表示单个字符不能匹配a~z 或 A~Z或 0~9;"W" 等同于"^w"
???????? 14.String? regex? =? "A?"??????????? 表示该字符A 必须出现 0次 或 1次
??????? 15.String? regex? =? "A*"??????????? 表示该字符A 必须出现 0次 或 多次
??????? 16String? regex? =? "A+"??????????? 表示该字符A 必须出现 1次 或 多次
2.group分组:
??????? 1.String? regex? = "((A)(B(C)))":第一个分组是整体((A)(B(C))),第二个分组是(A),第三个分组是(B(C)),第四个分组是(C)
???????????? String? regex? = "(A)1":1 表示 引用(代表)第一个分组(A)
???????????? 例子:
??????????????? //(.)1+:1 表示 引用的第一个分组(.)匹配出来的数据 可以是 一个或多个,即 (.)1+ 相当于 "我+"
???????????????? String? regex? =? "(.)1+"
???????????????? String?? str? =?? "我我我"
???????????????? boolean? b? =?? str.matches(regex)//true
????????????????
???????????????? ------------------------------------------------------
??????????????? String?? str? =?? "我我我爱爱爱渚渚渚"
???????????????? // "(.)1+":"1" 表示 引用的第一个分组"(.)"? 匹配出来的数据,即 "(.)1" 匹配出 "我" ,"(.)1+"? 匹配出 叠词? "我+"。
??????????????? // 因为后面执行 replaceAll 所以会进行 多次匹配,所以最终"(.)1+" 会进行多次匹配,得出 叠词 "我+"、"爱+"、"渚+"。
??????????????? String? regex? =? "(.)1+"
??????????????? // replaceAll(regex,? "$1")表示把字符串中 所有的符合正则规则的数据 都被替换为 "$1"引用的第一个分组的数据。
??????????????? // "$1" 和 "1" 意思一样, 都表示 引用 第一个分组"(.)"? 匹配出来的数据? "我"、"爱"、"渚"。
??????????????? // str.replaceAll(regex,? "$1"):表示把? "(.)1+"替换为 "$1",即 "我+"、"爱+"、"渚+" 被分别替换为? "我"、"爱"、"渚"
???????????????? //???????? regex: "(.)1+" 匹配出 叠词 "我+"、"爱+"、"渚+";
??????????????? //???????? "$1"和 "1" 都匹配出 "我"、"爱"、"渚"
???????????????? String?? newStr? =?? str.replaceAll(regex,? "$1") //newStr? 为 "我爱渚"