abc是指那几个字符的取值范围,abc是指那么些字符的取值范围

 用于判断字符串是否符合指定的规则
一、 组成部分:
   1. 字符:
 用于判断字符串是否符合指定的规则
一、 组成部分:
   1. 字符:
  • [abc]: 中括号代表的是七个字符, abc是指那个字符的取值范围
  • [a-z]
  • [a-zA-Z]
  • [a-zA-Z0-9_]
  • [^abc]: 这一个字符的取值范围不是a\b\c就足以了
  • [^a-z]: 不在小写字母范围
  • [永利网上娱乐,abc]: 中括号代表的是2个字符, abc是指这一个字符的取值范围
  • [a-z]
  • [a-zA-Z]
  • [a-zA-Z0-9_]
  • [^abc]: 这几个字符的取值范围不是a\b\c就能够了
  • [^a-z]: 不在小写字母范围

   2. 预定义字符
   2. 预定义字符
  • \d: 表示数字字符, 约等于 [0-9]
  • \D: 表示非数字字符,相当于 [^0-9]
  • \w: 表示的是 [A-Za-z0-9_]
  • \W: 表示的是 [^A-Za-z0-9_]
  • . : 点表示的是3个自由字符(除了\n)
  • \d: 表示数字字符, 也等于 [0-9]
  • \D: 表示非数字字符,相当于 [^0-9]
  • \w: 表示的是 [A-Za-z0-9_]
  • \W: 表示的是 [^A-Za-z0-9_]
  • . : 点表示的是二个专断字符(除了\n)

   3. 数量词: 假设X表示一个字符
   3. 数量词: 假设X表示一个字符
  • X{n}: 表示X出现了n次
  • X{n,}: 表示X至少出现了n次
  • X{n,m}: 表示X出现了n-m次
  • X+: +表示X出现了一回以上,包蕴一遍
  • X*: * 表示X出现0次以上
  • X? : ? 表示X现身了0次仍然1回
  • X{n}: 表示X出现了n次
  • X{n,}: 表示X至少出现了n次
  • X{n,m}: 表示X出现了n-m次
  • X+: +表示X出现了3遍以上,包含1回
  • X*: * 表示X出现0次以上
  • X? : ? 表示X出现了0次仍旧1遍

   4. 正则的分组
   4. 正则的分组
  • (a(b(cd))efg)
  • 分组的条条框框
    • 有多少个左小括号就有多少个组
    • 第多少个左小括号就是第几组
    • 第0组表示任何正则
  • (a(b(cd))efg)
  • 分组的平整
    • 有几个左小括号就有多少个组
    • 第多少个左小括号就是第几组
    • 第0组表示全部正则

二、注意事项:
   1. 在java中, 双引号中两个 \ 才能代表一个 \
   2. 字符串中支持正则表达式的方法:
二、注意事项:
   1. 在java中, 双引号中两个 \ 才能代表一个 \
   2. 字符串中支持正则表达式的方法:
    • matches
    • split
    • replaceAll
    • replaceFirst
    • matches
    • split
    • replaceAll
    • replaceFirst

三、分组查询示例

 1 public class Test {
 2 
 3     public static void main(String[] args) {
 4 
 5         String str = "abcdabababbbbb";
 6         String regEx1 = "(a(b))cd\\1+\\2{4}"; //表示第一组"(ab)出现一次以上,第二组"(b)"出现四次
 7         boolean b = str.matches(regEx1);
 8         System.out.println(b);//true
 9 
10         String str2 = "aaabbbbbbbccaaaaddddddddddddd";
11         String regEx2 = "(.)\\1+"; //表示任意字符(除"\n"外)练习出现一次以上
12         String ss = str.replaceAll(regEx2, "$1"); //将连续重复的字符替换第一个字符
13         System.out.println(ss); //"abcdababab"
14 
15         //将字符串str3转换成 "我爱编程"
16         String str3 = "我..我....我...我......爱..爱...爱.....爱...编.....编....编..编....程....程...程....程!";
17         //方法一
18         //(?=X) X,通过零宽度的正lookahead,表示不理解
19         String regEx3 = "(.)(?=.*\\1)";
20         String a = str3.replaceAll (regEx3,"");
21         System.out.println (a); //我爱编.程!
22         // "\\p{Punct}"表示匹配 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
23         System.out.println (a.replaceAll ("\\p{Punct}",""));//我爱编程
24 
25         //方法二
26         str3 = str3.replaceAll("(我\\.+)+(爱\\.+)+(编\\.+)+(程\\.+)+(程\\!+)","我爱编程");
27         System.out.println (str3); //我爱编程
28 
29         //方法三
30         str3 = str3.replaceAll ("[.!]","")
31                 .replaceAll ("(.)\\1+","$1");
32         System.out.println (str3); //我爱编程
33     }
34 }
三、分组查询示例

 1 public class Test {
 2 
 3     public static void main(String[] args) {
 4 
 5         String str = "abcdabababbbbb";
 6         String regEx1 = "(a(b))cd\\1+\\2{4}"; //表示第一组"(ab)出现一次以上,第二组"(b)"出现四次
 7         boolean b = str.matches(regEx1);
 8         System.out.println(b);//true
 9 
10         String str2 = "aaabbbbbbbccaaaaddddddddddddd";
11         String regEx2 = "(.)\\1+"; //表示任意字符(除"\n"外)练习出现一次以上
12         String ss = str.replaceAll(regEx2, "$1"); //将连续重复的字符替换第一个字符
13         System.out.println(ss); //"abcdababab"
14 
15         //将字符串str3转换成 "我爱编程"
16         String str3 = "我..我....我...我......爱..爱...爱.....爱...编.....编....编..编....程....程...程....程!";
17         //方法一
18         //(?=X) X,通过零宽度的正lookahead,表示不理解
19         String regEx3 = "(.)(?=.*\\1)";
20         String a = str3.replaceAll (regEx3,"");
21         System.out.println (a); //我爱编.程!
22         // "\\p{Punct}"表示匹配 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
23         System.out.println (a.replaceAll ("\\p{Punct}",""));//我爱编程
24 
25         //方法二
26         str3 = str3.replaceAll("(我\\.+)+(爱\\.+)+(编\\.+)+(程\\.+)+(程\\!+)","我爱编程");
27         System.out.println (str3); //我爱编程
28 
29         //方法三
30         str3 = str3.replaceAll ("[.!]","")
31                 .replaceAll ("(.)\\1+","$1");
32         System.out.println (str3); //我爱编程
33     }
34 }

 

 

相关文章