java 正则表达式匹配指定位置字符串并取出

java 正则表达式匹配指定位置字符串并取出

复制代码
 @Test
    public  void  test01(){
        String str1="应收:12;实收:100;找零:88";
        String pattern2 = "找零:(\\d+)(.*)";
//        String pattern2 = "\\S+:(\\d+)(.*);";
//        String pattern2 = "\\S+:(\\d+)(.*)";
        // 创建 Pattern 对象
        Pattern r2 = Pattern.compile(pattern2);
        // 现在创建 matcher 对象
        Matcher m2 = r2.matcher(str1);
        if(m2.find()) {
            System.out.println("m.group(0) = " + m2.group(0));
            System.out.println("m.group(1) = " + m2.group(1));
        }  else {
            System.out.println("NO MATCH1");
        }

    }
复制代码

输出:

m.group(0) = 找零:88
m.group(1) = 88

找到group(1) 可以使用了

 

二、匹配指定字符串

  @Test
    private  void  matchText(){
        String foodRemark = "口味:免辣,微辣,测试的口味;做法:次加糖,啊加双蛋,博香菜,虾皮; 这是其它备注,最后位置";
        String handleFoodRemark=getTextFromFoodRemark(foodRemark,"\\做法:(.*?)\\;");
        System.out.println("handleFoodRemark = " + handleFoodRemark);        
    }
public static String getTextFromFoodRemark(String foodRemark, String regex) {
        Pattern pattern = Pattern.compile(regex);// 匹配的模式
        Matcher m = pattern.matcher(foodRemark);
        if (m.find()) {
            return m.group(1);//取第一族匹配的字符串
        }
        return "";
    }

输出结果:次加糖,啊加双蛋,博香菜,虾皮

posted @   xiaoBai1001  阅读(4716)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示