9.JAVA中的正则表达式

时间:2023-03-08 18:08:32
9.JAVA中的正则表达式
  • 一、JAVA中的正则表达式

  • 1.概念:以某种特定的方式描述字符串
  • 1.Java中正则表达式的规则
  • ?          #{0,1}-?有一个-或者没有
  • \\           #表示一个”\"
  • \\d         #表示一个数字
  • \\D       #非数字
  • f\\W+    #表示f开头的单词
  • \\W       #表示一个非单词字符
  • \\w       #表示一个单词字符[0-9A-Za-z-]包含’-’
  • \\s        #空白符号
  • \\S       #非空白符号
  • (-|\\+)?\\d+  #表示一个数字(正数负数都可以)
  • {m,n}数量
  • *           #{0,}
  • +          #{1,}
  • .          #任意的字符 除了“\n”
  • 正则表达式中的一个\————\\
  •                          一个+---\\+
  •                          一个.————\\.
  • System.out.println("193.12.1.0".matches("(\\d{1,3}\\.){3}\\d{1,3}"));——true
  • 2.String提供的正则表达式运算
  • 运算一:split(String arg);—return String[];
  • split(” “,int max);//限制分离的次数最多时max次
  • 按照arg进行split,给定的字符会被删除
  • 运算二: 替换单词(一个||多)
  • replaceFirst(“f\\w+”,“location”);//替换第一个出现的f开头的单词
  • replaceAll(“f\\w+”|”g\\w+”|”z\\w+”,”location");//替换全部的单词—String.replace(String)一样,后者不支持正则表达式
  • eg:
  • String string=new String(“Hello String ass");
  • string.replaceFirst(“H\\w+|S\\w+”,”abc”);//abc String ass
  • string.replaceAll(“H\\w+|S\\w+”,”abc”);//abc abc ass
  • 运算三:matches()
  • String str=new String();
  • if(str.matches(“Y\\w+”))  //
  • 3.创建正则表达式
  • 字符类
System.out.println("A".matches("[ABC]"));//判断单词是不是"ABC"三个字母中的一个"ABC".contains("A")
System.out.println("r".matches("[^ABC]"));//判断单词是否不含A、且包含BC
System.out.println("d".matches("[a-zA-Z]"));//判断是不是字母
System.out.println("a".matches("[ABC[abc]]"));//跟[ABCabc]是一样的吧
System.out.println("h".matches("[a-z&&[hij]]"));//首先是小写字母,其次必须是[hij]中的字母
  • 量词
  • .   除了\n之外的任意字符 -----不是量词
  • *   表示0-无穷   .*表示0-n个字符
  • +  表示1-无穷   .+表示1-n个字符
  • 备注:JAVA正则表达式中需要转义的符号
  • 1.”+”——>”\\+”;
  • 2.”.”—— >”\\.”;
  • 3.”\\”——>”\\”;