java正则表达式的简单用法

规则

正则表达式规则可以匹配
A指定字符A
\u548c指定Unicode字符
.除\n外的任意字符a,b,&,0
\d数字0~90~9
\w大小写字母,数字和下划线a~z,A~Z,0~9,_
\s空格、Tab键空格,Tab
\D非数字a,A,&,_,……
\W非\w&,@,中,……
\S非\sa,A,&,_,……
正则表达式规则可以匹配
A*任意个数字符空,A,AA,AAA,……
A+至少1个字符A,AA,AAA,……
A?0个或1个字符空,A
A{3}指定个数字符AAA
A{2,3}指定范围个数字符AA,AAA
A{2,}至少n个字符AA,AAA,AAAA,……
A{0,3}最多n个字符空,A,AA,AAA
正则表达式规则可以匹配
^开头字符串开头
$结尾字符串结束
[ABC][…]内任意字符A,B,C
[A-F0-9xy]指定范围的字符A~F,0~9,x,y
[^A-F]指定范围外的任意字符非A~F
ABCDEF

cases

  1. 用于判断目标串中是否含有模式串
    @Test
    public void test(){
    	//匹配一个或多个A
        String pattern1 = "A+";
        boolean m1 = Pattern.matches(pattern1, "AAA");
//        System.out.println(m1); //true

		//匹配任意数量的大小写字母,数字和下划线
        String pattern2 = "\\w*";  //注意\需要转义
        boolean m2 = Pattern.matches(pattern2, "AAAa ");
//        System.out.println(m2); //true

		//匹配任意数量的空格
        String pattern3 = "\\s+";
        boolean m3 = Pattern.matches(pattern3, "  ");
//        System.out.println(m3);  //true

       	//匹配5到10个A
        String pattern4 = "A{5,10}";
        boolean m4 = Pattern.matches(pattern4, "AAAAA");
//        System.out.println(m4); //true

		//匹配以a开头以B结尾,中间为任意数量任意字符的字符串
        String pattern5 = "^a.*B$";
        boolean m5 = Pattern.matches(pattern5, "a123B");
//        System.out.println(m5); //true

		//匹配9到11个数字 + @符号 + 2到10个小写字母 + .符号 + 2到3个小写字母,其中第一个字母不为a
        String pattern6 = "\\d{9,11}@[a-z]{2,10}.[^a][a-z]{1,2}";
        boolean m6 = Pattern.matches(pattern6, "123456789@qq.com");
//        System.out.println(m6);  //true
    }
  1. 用于提取模式串
//提取出@符号之前的数字
String paterrn7 = "(\\d*)@.*";
Pattern pattern = Pattern.compile(paterrn7);
  Matcher matcher = pattern.matcher("123456789@qq.com");
  if (matcher.find()){
      //注意group(0)是整个字符串
      String totalGroup = matcher.group(0);
      System.out.println(totalGroup); //123456789@qq.com
      for(int i = 1; i <= matcher.groupCount();i++){
          System.out.println(matcher.group(i)); //123456789
      }
  }
  1. 贪婪模式与非贪婪模式
    可以认为贪婪模式是从目标串的右侧向左侧查找模式串,非贪婪模式是从左向右查找
//匹配以b结尾的子串
 Pattern pattern9 = Pattern.compile("(.*b).*");
 Matcher matcher9 = pattern9.matcher("aabaabcc");
 if (matcher9.find()){
     System.out.println(matcher9.group(1)); //aabaab
 }

 Pattern pattern10 = Pattern.compile("(.*?b).*");
 Matcher matcher10 = pattern10.matcher("aabaabcc");
 if (matcher10.find()){
     System.out.println(matcher10.group(1));  //aab
 }

markdown语法

  1. 表格
表头|表头|表头
---|:--:|---:
内容|内容|内容
内容|内容|内容
  1. 下标

A0

A<sub>0</sub>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值