项目常见正则表达式的使用

在常见类型中:标准的Js格式数据(非json),需要我们自行解析处理


一、正则表达式的常见类型:

  1. \d: 匹配一个数字字符,等价于 [0-9]

  2. \w: 匹配一个单词字符,包括字母、数字和下划线,等价于 [a-zA-Z0-9_]

  3. \s: 匹配一个空白字符,包括空格、制表符、换行符等。

  4. .: 匹配任意单个字符,除了换行符 \n

  5. \b: 匹配一个单词边界,即单词字符与非单词字符之间的位置。

  6. ^: 匹配字符串的开始。

  7. $: 匹配字符串的结束。

  8. []: 匹配方括号内的任意一个字符。例如,[abc] 匹配字符 abc

  9. {}: 指定匹配的次数,例如 {n} 表示匹配前一个元字符恰好出现 n 次,{m,n} 表示匹配前一个元字符至少出现 m 次、至多出现 n 次。

  10. ()?: 标记一个子表达式的开始和结束,也可以表示该子表达式是可选的。

  11. |: 表示逻辑或,匹配两个或多个选择中的任意一个。

  1. 匹配邮箱地址:

    String regex = "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b";

  2. 匹配 URL:

    String regex = "^(http|https)://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$";

  3. 匹配日期(YYYY-MM-DD 格式):

    String regex = "\\b\\d{4}-\\d{2}-\\d{2}\\b";

  4. 匹配手机号码:

    String regex = "\\b(\\+?\\d{1,3}[- ]?)?\\d{10}\\b";

  5. 匹配 IP 地址:

    String regex = "\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b";

    二、核心类:Pattern、Matcher;

例子:

@Test
    public void testRep2(){
        // 按指定模式在字符串查找
        String line = "This order was placed for QT3000! OK?";
        String pattern = "(\\D*)(\\d+)(.*)";
        // 创建 Pattern 对象
        Pattern r = Pattern.compile(pattern);
        // 现在创建 matcher 对象
        Matcher m = r.matcher(line);
        if (m.find( )) {
            System.out.println("Found value: " + m.group(0) );
            System.out.println("Found value: " + m.group(1) );
            System.out.println("Found value: " + m.group(2) );
            System.out.println("Found value: " + m.group(3) );
        } else {
            System.out.println("NO MATCH");
        }
    }
  1. 编译正则表达式: 首先,你需要将正则表达式字符串编译成一个 Pattern 对象。可以使用 Pattern.compile() 方法进行编译。

    String regex = "your_regular_expression"; Pattern pattern = Pattern.compile(regex);

  2. 创建 Matcher 对象: 接下来,使用 Pattern 对象的 matcher() 方法创建一个 Matcher 对象,用于执行匹配操作。

    String input = "your_input_string"; Matcher matcher = pattern.matcher(input);

  3. 执行匹配操作: 使用 Matcher 对象的方法执行匹配操作,比如查找匹配、提取匹配、替换等。

    boolean found = matcher.find(); // 查找下一个匹配项

  4. 提取匹配结果: 如果找到了匹配项,可以使用 Matcher 对象的方法提取匹配到的内容。

    String match = matcher.group(); // 获取整个匹配项

  5. 迭代匹配结果: 如果有多个匹配项,可以使用循环迭代匹配到的结果,依次处理每个匹配项。

    while (matcher.find()) { String match = matcher.group(); // 处理匹配项 }

  6. 替换匹配结果(可选): 如果需要,可以使用 Matcher 对象的 replaceAll()replaceFirst() 方法替换匹配到的内容。

    String replaced = matcher.replaceAll(replacement);

  7. 获取匹配位置(可选): 如果需要,可以使用 start()end() 方法获取匹配文本的起始位置和结束位置。

    int start = matcher.start(); int end = matcher.end();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值