JAVA笔记------正则表达式

正则表达式

认识正则表达式

  • 现在假设有一个字符串要求你判断字符串,是否由我们的数字组成,如果由数字组成就将其变成数字,然后进行乘法运算,
  • 这样子的功能是非常简单的,但是程序开发者却需要写很复杂的代码验证,而今天,我们的正则表达式,就可以很简便的完成对这类数据的验证。
  • 常用的数据验证,都只要正则表示式去完成,这样很方便,简洁。

正则标记(背)

【数量:单个】字符匹配

  • 任意字符:表示由任意字符组成 X
  • \\ :匹配 \
  • \n :匹配换行;
  • \t :匹配制表符

【数量:单个】字符集(可以从里面任选一个字符)

  • [abc] :表示可以是a、b、c里面的任意一个字符。
  • [^abc] :表示不是a、b、c里面的任意一个字符。
  • [a-zA-Z] :表示由任意一个字母组成,不区分大小写;
  • [0-9] :表示由任意一个数字组成;

【数量:单个】简化字符集:

  • . (点):表示任意一个字符;
  • \d :等价于[0-9] ,表示任意一个数字;
  • \D:等价于[^0-9] ,表示任意一个不是数字的字符;
  • \s:匹配任意的一个空格,可能是换行、制表符、空格;
  • \S:表示一个不是空格、制表符、换行的字符。
  • \w:等价于[a-zA-Z_0-9];表示任意的一个字母、下划线、数字;
  • \W:等价于[^a-zA-Z_0-9],表示非字母、下划线、数字;

边界匹配

  • ^ :匹配边界的开始;
  • $:匹配边界的结束;

数量表示,默认情况下只有添加了数量单位才可以匹配多位字符。

  • 表达式+问号? :该正则可以出现1次、0次;
  • 表达式+星号* :该正则可以出现0次、1次、多次;
  • 表达式+加号+ :该正则可以出现1次、多次;
  • 表达式+{n} :表示该表达式的长度正好的n次;
  • 表达式+{n,}:表示该表达式的长度在n次以上;
  • 表达式+{n,m}:表示该表达式的长度在n次-m次之间;

逻辑表达式,可以连接多个正则

  • 表达式X表达式Y : X表达式之后紧跟着Y表达式;
  • 表达式X | 表达式Y :满足两个表达式其中的一个即可;
  • (表达式):我们为表达式设置一个整体描述,可以为整体描述设置的数量单位;

在matcher类里面有一种分组的功能是String类不具备的

package 阿里云大学java.java高级学习;

import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SimpleTimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class 常用库练习 {
    public static void main(String[] args){
        String s = "public static fun(a,b,c) VALUES (#{a},#{b},#{c})";
        String regex = "#\\{\\w+\\}";
        Pattern pat = Pattern.compile(regex);
        Matcher mat = pat.matcher(s);
        while(mat.find()){
            System.out.println(mat.group().replaceAll("[#{}]",""));
        }
    }
}

那就是分组啦!!!

你可能感兴趣的:(JAVA,正则表达式,java,字符串)