java--正则表达式
2021-05-15 12:47
标签:获取 pattern regex ace 规则 ble 正则表达 实用 多次 正则表达式概念:一个字符串,一个规则 String regex ="[1-9]\\d{4,14}" str.matches(regex) 返回值类型boolean java.util.regex下的Pattern类 单个字符类 [abc] []代表单个字符,表示a或b或c字符 [^abc] 除a/b/c外的任何字符 [a-zA-Z]表示范围,两头的字母包括 [a-d[m-p]]并集 [a-z&&[def]]交集 [a-z&&[^bc]] = [ad-z] [a-z &&[^m-p]]减去 预定义字符类 . 任意字符 \d =[0-9] // \表示转义字符,如果想表示\d的话,需要\\d \D [^0-9]非数字 \s 空白字符 [ \t\n\x0B\f\r] \ttable键水平制表符,\n换行 \r回车 匹配空格和table键的等 \S 非空白字符 \w 单词字符[a-zA-Z_0-9] \W 非单词字符 数量词 Greedy X ? X一次或一次也没有 注意:一次也没有指得是X,也不能出现其他的"" X* X零次到多次 X+ X一次到多次 X{n} X出现n次 X{n,}x出现至少n次 X{n,m}x出现n-m次 注意:split分割时,如使用.分割,需要\\. replaceall 正则表达式的替换功能 String s = "wo1ai2heima"; String regex = "\\d"; String s2 = s.replaceAll(regex,""); 正则表达式的分组功能 1.组零代表整个表达式 2.其他按照左括号分组 String regex = "(.)\\1(.)\\2" \\1第一组出现两次 \\2第二组出现两次 String regex = "(.)\\1+" +表示第一组出现一次到多次 String s = str.replaceAll("(.)\\1+","$1")$1表示第一组中的内容 Pattern 和Matcher概述 Pattern不能被继承,其典型调用顺序为: Pattern p = Pattern.compile(String regex); 获取正则表达式 Matcher m = p.matcher(String str) ; 获取str的匹配器 boolean b = m.matches(); 看是否能匹配,匹配就返回true 上面三步骤等于 str.matches(regex) 上面的第一种方法看似是复杂的,但是其相较于第二种方法有更加实用的场景,如获取字符串中的手机号码等。 Pattern p = Pattern.compile(String regex); 获取正则表达式 Matcher m = p.matcher(String str) ; 获取str的匹配器 boolean b = m.find(); 看是否有匹配的子串,匹配就返回true String s1= m.group();返回上次匹配的子串 while(m.find()) System.out.println(m.group); 获取字符串中匹配的所有子串。 java--正则表达式 标签:获取 pattern regex ace 规则 ble 正则表达 实用 多次 原文地址:https://www.cnblogs.com/candy-yjbai/p/9752928.html