专栏首页吴伟祥Java 正则表达式 原

Java 正则表达式 原

package com.zhaogang.app.web.aspect;

/**
 * Created by weixiang.wu on 2017/9/20.
 */

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches {


    public static void main(String args[]) {
//        在表达式((A)(B(C))),有四个这样的组:
//        ((A)(B(C)))
//        (A)
//        (B(C))
//        (C)


        // 按指定模式在字符串查找
        String line = "This order was placed for QT3000! OK?";
        String pattern1 = "(\\D*)(\\d+)(.*)";

        int count1 = 0;

        // 创建 Pattern 对象
        Pattern r1 = Pattern.compile(pattern1);

        // 现在创建 matcher 对象
        Matcher m1 = r1.matcher(line);
        if (m1.find()) {
            for (int i = 0; i <= m1.groupCount(); i++) {
                count1++;
                System.out.println("Match number "+count1);
                System.out.println("start(): "+m1.start());
                System.out.println("end(): "+m1.end());
                System.out.println(m1.group(i));
            }
        } else {
            System.out.println("NO MATCH");
        }





        String str = "1234567890";
        String pattern = "((?<=\\d)\\d{3})+\\b";
        int count = 0;

        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(str);
        if (m.find()) {
            for (int i = 0; i <= m.groupCount(); i++) {
                count++;
                System.out.println("Match number "+count);
                System.out.println("start(): "+m.start());
                System.out.println("end(): "+m.end());
                System.out.println(m.group(i));
            }
        } else {
            System.out.println("NO MATCH");
        }



 /** 
   * 获取查询的字符串 
   * 将匹配的字符串取出 
   */
  private void getString(String str, String regx) { 
    //1.将正在表达式封装成对象Patten 类来实现 
    Pattern pattern = Pattern.compile(regx); 
    //2.将字符串和正则表达式相关联 
    Matcher matcher = pattern.matcher(str); 
    //3.String 对象中的matches 方法就是通过这个Matcher和pattern来实现的。 
       
    System.out.println(matcher.matches()); 
    //查找符合规则的子串 
    while(matcher.find()){ 
      //获取 字符串 
      System.out.println(matcher.group()); 
      //获取的字符串的首位置和末位置 
      System.out.println(matcher.start()+"--"+matcher.end()); 
    } 
  } 


//去除叠词
//reg.getReplace("12111123ASDASDAAADDD","(.)\\1+","$1");
/**
     * 字符串的替换
     */
    private void getReplace(String str, String regx,String replaceStr) {
        String stri = str.replaceAll(regx,replaceStr) ;
        System.out.println("正则表达式替换"+stri);
    }


    }
}
Match number 1
start(): 0
end(): 37
This order was placed for QT3000! OK?
Match number 2
start(): 0
end(): 37
This order was placed for QT
Match number 3
start(): 0
end(): 37
3000
Match number 4
start(): 0
end(): 37
! OK?
Match number 1
start(): 1
end(): 10
234567890
Match number 2
start(): 1
end(): 10
890

Process finished with exit code 0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 自定义template(Settings-->Live Templates)

    psvm=public static void main(String[] args) {}

    wuweixiang
  • java 常规类型消息的格式化 原

    0.slf4j有一个common logger没有的功能,字符串中的{}会被替换,如下:

    wuweixiang
  • 手写tomcat监控工具---宕机重启 原

    wuweixiang
  • JavaApi-数组&集合

    DataScience
  • Java 8的新特性还不了解?快进来!

    Java 8从发布到现在已经6年多了,java 8在Java历史版本中是一个具有“里程碑”意义的重要版本,相信现在很多公司都用上了Java 8这个版本,用了之后...

    编程大道
  • java之string类中其他功能的转换

    吾爱乐享
  • java学习-string类的常用功能

    吾爱乐享
  • 数据结构与算法-键盘排序

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • 【每天一道编程系列-2018.2.17】(Ans)

    Write a program that outputs the number of an integer input in the opposite ord...

    yesr
  • JVM解读-方法区

    方法区,Method Area, 对于习惯在HotSpot虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为“永久代”(Permanent Genera...

    高广超

扫码关注云+社区

领取腾讯云代金券