9.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.”\\”——>”\\”;