java中正则表达式第一次特殊使用

本文介绍了正则表达式的基本概念,包括字符和元字符、一对一和一对多匹配、次数限定以及贪婪与懒惰匹配。并以Java代码为例,展示了如何使用Pattern和Matcher进行字符串匹配,从列表中提取特定状态并组合成入库/出库/退库等字符串。
摘要由CSDN通过智能技术生成

 记录第一次使用~

正则表达式的使用

正则表达式(Regular Expression)是一种用于模式匹配的强大工具,它由普通字符(例如字母、数字、符号)和特殊字符(元字符)组成。以下是使用正则表达式的一些基本概念和技巧:

  • 基本概念。正则表达式中的元素由字符和元字符组成。字符是普通的计算机编码,如英文字符、数字、中文等;元字符是特殊字符,如\、*、$等,它们在正则表达式中具有特殊意义。12
  • 一对一匹配。当想匹配单个字符时,可以直接使用该字符,如/a/。2
  • 一对多匹配。正则表达式支持模糊匹配,使用集合、区间和通配符实现。例如,[a-z]匹配所有小写字母,[0-9]匹配所有数字。234
  • 次数限定。使用限定符?、*、+、{}来设置字符重复的次数,实现长度模糊。例如,正则表达式/ab+c/表示字符b至少出现一次。1234
  • 特殊字符。特殊字符如^、$、\d、\w等,在正则表达式中具有特殊意义,如^匹配行首,$匹配行尾。124
  • 贪婪与懒惰匹配。正则表达式中的量词默认是贪婪的,总是尝试匹配尽可能多的字符;非贪婪模式则相反,总是尝试匹配尽可能少的字符。
    /**
     * 正则表达式来编译一个模式,该模式可以匹配字符串中的三种可能的子串之一: "入库"、"出库" 或者 "退库"
     * Pattern.compile() 方法用于编译正则表达式字符串,将其转换为一个 Pattern 对象
     *Content中的state有,入库中,待入库,出库中,待出库,退库中,待退库,退了。不管如何组合最后输出入库/出库/退库类似字符串
     */
Pattern pattern = Pattern.compile("(入库|出库|退库)");
public void sendAllMessage(List<Content> Info) {
  String type = Info.stream()
                .map(Content::getState)
                .distinct()
                .map(n -> {
                    Matcher matcher = pattern.matcher(n);
                    if (matcher.find()) { // 使用 find 方法执行实际的匹配操作
                        return matcher.group(1); // 返回匹配的内容
                    }
                    return ""; // 如果未找到匹配项,则返回空字符串
                })
                .filter(n -> !Objects.equals(n, ""))
                .distinct()
                .map(n -> Objects.equals(n, "退了") ? "退库" : n)
                .collect(Collectors.joining("/"));
  }

在线测试:正则表达式在线测试 | 菜鸟工具 (jyshare.com)

参考:

正则表达式基本使用_正则表达式{}-CSDN博客

正则表达式 - JavaScript | MDN (mozilla.org)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值