【141】Java获得正则表达式匹配的内容

有些时候需要获得匹配正则表达式的文字内容做进一步处理。我总结了下面的代码,可以获得正则表达式匹配的内容。其中 RegexUtils 是正则表达式的工具类型。Main类包含main方法,演示如何使用工具类。

RegexUtils.java

package blog141;

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

/**
 * 正则表达式工具类
 * @author zhangchao
 */
public final class RegexUtils {
    /**
     * 获得匹配正则表达式的内容
     * @param str 字符串
     * @param reg 正则表达式
     * @param isCaseInsensitive 是否忽略大小写,true忽略大小写,false大小写敏感
     * @return 匹配正则表达式的字符串,组成的List
     */
    public static List<String> getMatchList(final String str, final String reg, final boolean isCaseInsensitive) {
        ArrayList<String> result = new ArrayList<String>();
        Pattern pattern = null;
        if (isCaseInsensitive) {
            //编译正则表达式,忽略大小写
            pattern = Pattern.compile(reg, Pattern.CASE_INSENSITIVE);
        } else {
            //编译正则表达式,大小写敏感
            pattern = Pattern.compile(reg);
        }
        Matcher matcher = pattern.matcher(str);// 指定要匹配的字符串
        while (matcher.find()) { //此处find()每次被调用后,会偏移到下一个匹配
            result.add(matcher.group());//获取当前匹配的值
        }
        result.trimToSize();
        return result;
    }
}

Main.java

package blog141;

import java.util.List;

/**
 * @author zhangchao
 */
public class Main {

    public static void main(String[] args) {
        List<String> list = RegexUtils.getMatchList("aaa2343298AAA33333", "aaa", true);
        for (String str : list) {
            System.out.print(str + "  ");
        }
        System.out.println();
        List<String> list2 = RegexUtils.getMatchList("aaa2343298AAA33333", "aaa", false);
        for (String str : list2) {
            System.out.print(str + "  ");
        }
        System.out.println();
    }
}

结果如下:

aaa  AAA  
aaa  

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值