当前位置: 首页 > news >正文

449. Java 正则表达式 - 其他实用方法

文章目录

  • 449. Java 正则表达式 - 其他实用方法
    • 1️⃣ `Pattern.quote(String s)`
        • 示例:
    • 2️⃣ `Pattern.toString()`
        • 示例:
    • 3️⃣ `String` 类中的正则方法
      • 示例 1:`String.matches()`
      • 示例 2:`String.split()`
      • 示例 3:`String.replace()`
    • 🔹 小结

449. Java 正则表达式 - 其他实用方法

除了PatternMatcher的常用方法,Java 提供了一些辅助方法和String里的正则方法,可以让正则操作更方便。


1️⃣Pattern.quote(String s)

publicstaticStringquote(Strings)
  • 功能:将输入字符串s转换为字面量匹配的正则表达式
  • 特点:输入中的元字符(如.,*,?等)会被当作普通字符处理,不再具有特殊含义
示例:
importjava.util.regex.Pattern;publicclassQuoteDemo{publicstaticvoidmain(String[]args){Stringinput="a.b*c?";Stringregex=Pattern.quote(input);// 将特殊字符转义booleanmatch=Pattern.matches(regex,"a.b*c?");System.out.println(match);// 输出 true}}

💡 说明:

  • 如果直接用"a.b*c?"作为正则,会匹配任意一个字符 + b + 任意次数的 c + 可选 ?
  • 使用Pattern.quote()后,匹配严格完全等于字符串本身

2️⃣Pattern.toString()

publicStringtoString()
  • 功能:返回编译正则表达式的字符串形式
  • 用途:方便调试,查看当前Pattern对象对应的正则表达式
示例:
Patternp=Pattern.compile("\\d{3}-\\d{2}-\\d{4}");System.out.println(p.toString());// 输出 \d{3}-\d{2}-\d{4}

3️⃣String类中的正则方法

Java 的java.lang.String也提供了几个Pattern等效的方法,让你直接对字符串操作正则:

方法功能等效 Pattern 方法
boolean matches(String regex)判断字符串是否完全匹配正则Pattern.matches(regex, str)
String[] split(String regex)按正则分割字符串,去掉尾部空字符串Pattern.compile(regex).split(str)
String[] split(String regex, int limit)按正则分割字符串,限制拆分次数Pattern.compile(regex).split(str, limit)
String replace(CharSequence target, CharSequence replacement)替换字面量子串不是正则,只替换字符串字面量

示例 1:String.matches()

Stringstr="12345";booleanmatch=str.matches("\\d+");// 判断是否全部是数字System.out.println(match);// 输出 true

✅ 注意:matches()要求整个字符串匹配,不是部分匹配。


示例 2:String.split()

Stringstr="one:two:three";String[]parts=str.split(":");for(Strings:parts){System.out.println(s);}

输出:

one two three

示例 3:String.replace()

Stringstr="aaa";Stringresult=str.replace("aa","b");System.out.println(result);// 输出 ba

💡 说明:

  • 替换从左到右
  • 字面量替换,不会把"aa"重叠部分当成两次匹配

🔹 小结

  • Pattern.quote():把字符串转成字面量正则
  • Pattern.toString():查看当前正则表达式
  • String类方法:方便快捷,适合简单匹配、拆分或替换

✅ 建议:

  • 复杂正则→ 用PatternMatcher
  • 简单匹配/拆分/替换→ 用String自带方法
http://www.jsqmd.com/news/1097033/

相关文章:

  • Android 7系统日志(一):全景图与架构概览
  • CCRC-CSERE网络安全应急响应工程师认证信息整理
  • Fast-GitHub:国内开发者告别GitHub龟速下载的终极解决方案
  • 终极指南:如何零配置实现WebRTC远程屏幕共享
  • Strix:开源AI漏洞检测工具,无缝集成CI/CD,快速准确查漏洞!
  • OpenAI王炸发布GPT-5.6!Sol、Terra、Luna三神降临,“Ultra模式”开启多智能体内卷时代!
  • Deeplabcut实战:从数据标注到行为分析的全流程解析
  • 如何5分钟完成漫画翻译:智能OCR工具的终极完整指南
  • 电商必备AI工具:如何把产品详情页,变成高转化种草笔记?
  • 别再只用Jieba了!用Pyhanlp给你的Python项目加个NLP瑞士军刀(附关键词提取实战)
  • 从零到一:手把手实现OLED的IIC四线驱动与内容显示
  • 别再只会画UMAP了!Scanpy核心绘图函数实战:从散点图到热图,手把手教你玩转单细胞数据可视化
  • ComfyUI-KJNodes:模块化节点系统的架构设计与技术实现
  • 多相抽取滤波在FPGA数字下变频中的工程实践(Matlab与Verilog协同验证)
  • R语言实战:运用IPTW与并行计算优化生存分析流程
  • 2001-2024年企业绿色媒体覆盖率绿色新闻数据
  • 从零到一:手把手教你为SPSS配置R环境并安装高级PSM插件
  • Python AES加密实战:用pycryptodome给你的配置文件‘上锁’(避坑IV和Padding)
  • AI 时代跨职能网络安全技能缺口与分层全员安全能力建设研究
  • 抖音内容批量下载工具:从手动保存到自动化管理的解决方案
  • 3个简单步骤掌握Cellpose:让细胞分割从复杂变轻松
  • 零成本云服务实测!阿贝云助力个人开发与学习运维
  • uni-app Vue3 集成uQRCode实现微信支付二维码动态生成与弹窗交互
  • 中导光电科创板IPO申请获受理,三年营收超8亿,半导体业务待突破
  • 2026年辽宁省高杆灯厂TOP5排名,工期短质量好选哪家?
  • 跨越数据鸿沟:领域自适应(Domain Adaptation)核心思想与实践路径
  • 保姆级教程:在Ubuntu 20.04 ROS Noetic下搞定轮趣N100 IMU驱动(含串口固定与Rviz可视化)
  • 一、Linux C编程笔记——标准IO
  • 技术揭秘:DeepMosaics如何用深度学习实现智能马赛克处理
  • Citizens2:Minecraft服务器NPC插件终极指南