正则表达式

这是个小知识点,无论哪个语言,这些什么\d,\D,\s,\S等规则都是一样的。我就不多说了。自己查看一下百度也就好了。
我把以前写的这部分知识直接复制过来

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

public class RegexTest {
    public static void main(String[] args){
        /*
            Regular有规律的 Expression表达式
            正则表达式regex
                一个带有一定规律的表达式
                匹配字符串格式的
            正则表达式通常的作用如下:
                1.字符串的格式校验  String类中提供的一个方法 boolean = str.matches("regex");
                2.字符串的拆分及替换 String类中提供的方法 replace split
                3.字符串的查找   Pattern模式 Matcher匹配器  用匹配器去匹配模式,看能否匹配上

                如下的所有都用来描述字符的信息(有还是没有该字符)
                [abc] abc中的一个
                [^abc] 不能是abc中的一个,其他都可以
                [a-zA-Z] 必须是这两个范围内的
                [a-z&&[^bc]] 表示a-z其中的一个但不能是b和c

                . 代表任意一个字符
                \d 代表[0-9]
                \D 代表[^0-9]
                \s space留白,一个空格 一个回车 一个换行等
                \S 非留白
                \w word [0-9A-Za-z] 数组或字母都可以
                \W 非word [^0-9A-Za-z]

                如下的所有都用来描述字符出现的次数
                ? 表示0次或一次 [0-9]?
                * 表示0-n次
                + 表示1-n次
                {n} 表示固定n次 (身份证号、手机号、邮编等)
                {n,} 至少出现n次
                {m,n} m-n次
        */
        Scanner input = new Scanner(System.in);
        System.out.println("请输入字符串");
        String str = input.nextLine();
        // 判断输入的str字符串内容是否满足什么样的格式
        boolean result = str.matches("a[abc]"); // 第一个字母必须是a,第二个字母是abc中的一个
        System.out.println("regex:a[abc]: " + result);

        result = str.matches("a[^abc]");  // 第一个是a,第二个是非abc的任意的其他一个
        System.out.println("regex:a[^abc]: " + result);

        result = str.matches("a[a-zA-Z]");  // 第一个是a,第二个是范围内的任意一个
        System.out.println("regex:a[a-zA-Z]: " + result);

        result = str.matches("a[a-z&&[^bc]]");  // 第一个是a,第二个a-z都可以,但不能是b和c
        System.out.println("regex:a[a-z&&[^bc]]" + result);


        // 查找
        // 1.利用Pattern类创建一个模式,理解为是一个正则表达式对象
        Pattern pattern = Pattern.compile("\\d{6}");  // 邮编
        // 2.需要提供一个字符串
        String string = "123456retwrtw456789qwr123456";
        // 3.利用pattern模式对象创建一个匹配器
        Matcher matcher = pattern.matcher(string);
        // 4.找寻字符串中出现满足上述格式的字符串
        while(matcher.find()){
            System.out.println(matcher.group()); // 找到满足字符串格式的那一串字符串
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值