zoukankan      html  css  js  c++  java
  • Java基础--第二十六天

    正则表达式的规则字符:

    A:字符

             x 字符 x,任意字符代表自己本身。

             \ 反斜线字符

                   回车

                  换行

            

    B:字符类

             [abc] a、b 或 c,任意字符一次。

             [^abc] 任何字符,除了 a、b 或 c

             [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内

             [0-9] 任意的数字字符一次

            

    C:预定义字符类

             . 任意的字符

             d 数字:[0-9]

             w 单词字符:[a-zA-Z_0-9]

                       单词字符:英文,数字,及_

                      

    D:边界匹配器

             ^ 行的开头

             $ 行的结尾

              单词边界(也就是说这里出现的不能是单词字符)

                       abc hello world?haha

                      

    E:Greedy 数量词

    X? X,一次或一次也没有

    X* X,零次或多次

    X+ X,一次或多次

    X{n} X,恰好 n 次

    X{n,} X,至少 n 次

    X{n,m} X,至少 n 次,但是不超过 m 次

    F:组

    捕获组可以通过从左到右计算其开括号来编号。组零始终代表整个表达式。

    ((A)(B(C)))

    第一组:(A)(B(C))

    第二组:A

    第三组:B(C)

    第四组:C

     1 import java.util.regex.Matcher;
     2 import java.util.regex.Pattern;
     3 
     4 //Pattern类的应用
     5 public class PatternDemo {
     6     public static void main(String[] args) {
     7         Pattern p = Pattern.compile("a*b");  //括号内表示正则表达式
     8         Matcher m = p.matcher("c*b");//括号内表示要匹配的字符串
     9         boolean flag = m.matches();
    10         System.out.println(flag);
    11         System.out.println("-------------------------------------------");
    12         
    13         String regex = "(.)\1+";//叠词的表示法,正则表达式
    14         Pattern p1 = Pattern.compile(regex);
    15         String str = "jskkjjvjksvkjsjkgahgggghgaaayf";
    16         Matcher m1 = p1.matcher(str);
    17         boolean flag2 = m1.matches();//查找出叠词
    18         System.out.println(flag2);
    19         while((m1.find())){//是否找到,进行判断,自动将指针移向下一个索引
    20             String strTemp = m1.group();//获取到查找出来的结果
    21             System.out.println(strTemp);
    22         }
    23         System.out.println("-------------------------------------------");
    24         String[] strArr = str.split(regex);//依据叠词进行分割
    25         for(String strTemp:strArr){
    26             System.out.println(strTemp);
    27         }
    28         System.out.println("-------------------------------------------");
    29     }
    30 }
  • 相关阅读:
    hdu5289 RMQ+二分
    poj1459 最大流Dinic
    poj2391 最大流+拆点
    poj1087&&hdu1526 最大流
    NOI2004 郁闷的出纳员
    Treap入门(转自NOCOW)
    poj 2892
    vijos 1512
    对拍程序
    poj 3264
  • 原文地址:https://www.cnblogs.com/zhidianhcuan/p/4430274.html
Copyright © 2011-2022 走看看