news 2026/6/18 14:50:52

438. Java 正则表达式 - 简介

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
438. Java 正则表达式 - 简介

文章目录

  • 438. Java 正则表达式 - 简介
    • 1. 什么是正则表达式(Regular Expressions)
    • 2. Java 的正则表达式核心类
      • 🌰 示例:Pattern 和 Matcher
    • 3. Unicode 支持(JDK 7+)
      • 匹配指定的 Unicode 码点
      • Unicode 属性匹配
    • 4. 总结 🎯

438. Java 正则表达式 - 简介

1. 什么是正则表达式(Regular Expressions)

正则表达式(简称 Regex)是一种用来描述字符串模式的工具。它能帮我们完成:

  • 🔍 搜索文本(比如:找出所有手机号)
  • ✂️ 编辑和替换文本(比如:把日期格式从2025-09-16改成16/09/2025
  • ✅ 验证输入(比如:检查用户输入是不是合法的邮箱地址)

👉 正则表达式有点像一门小语言,它有自己独特的语法规则,比普通的 Java 语法要“紧凑”。一开始可能觉得晦涩,但掌握了基本规则之后,就可以快速看懂、甚至写出复杂的正则。

在业界,有多种“方言”:grepPerlTclPythonPHPawk等。Java 的正则表达式语法和Perl最接近。


2. Java 的正则表达式核心类

Java 的正则表达式主要由java.util.regex包里的三个核心类组成:

  • Pattern
    已编译的正则表达式对象。
    👉 用Pattern.compile()创建,而不是 new。
  • Matcher
    正则引擎,用来匹配输入字符串。
    👉 通过pattern.matcher("input")获取。
  • PatternSyntaxException
    当正则语法错误时抛出的异常。
    👉 例如Pattern.compile("[A-Z")会报错,因为右括号缺失。

🌰 示例:Pattern 和 Matcher

importjava.util.regex.*;publicclassRegexDemo{publicstaticvoidmain(String[]args){Patternpattern=Pattern.compile("\\d+");// 匹配一个或多个数字Matchermatcher=pattern.matcher("Today is 2025-09-16.");while(matcher.find()){System.out.println("Found: "+matcher.group()+" from index "+matcher.start()+" to "+matcher.end());}}}

输出:

Found:2025from index9to13Found:09from index14to16Found:16from index17to19

👉 解释:

  • \\d+表示匹配一个或多个数字
  • matcher.find()会逐个找出所有符合的子串

3. Unicode 支持(JDK 7+)

Java 的正则在 JDK 7 以后支持 Unicode 6.0,更适合国际化场景。

匹配指定的 Unicode 码点

  • \uFFFF格式"\u6771"→ 匹配“東”字(汉字“东”的繁体)。

    intcodePoint=0x6771;StringhexPattern=String.format("\\u%04x",codePoint);Patternpattern=Pattern.compile(hexPattern);Matchermatcher=pattern.matcher("東风破");System.out.println(matcher.find());// true

Unicode 属性匹配

可以按照字符的“脚本 (script)”、“区块 (block)”和“通用类别 (general category)”匹配。

  • 脚本 (Scripts)
    \p{script=Hiragana}\p{IsHiragana}
    👉 用来匹配日语平假名。
  • 区块 (Blocks)
    \p{block=Mongolian}\p{InMongolian}
    👉 用来匹配蒙古文字符。
  • 通用类别 (General Category)
    • \p{IsL}→ 匹配所有字母
    • \p{gc=Lu}→ 匹配所有大写字母
    • \p{gc=Nd}→ 匹配所有数字

🌰 示例:

Patternp=Pattern.compile("\\p{IsHiragana}+");// 匹配平假名Matcherm=p.matcher("これはテストです");// 包含日语平假名System.out.println(m.find());// true

4. 总结 🎯

  • 正则表达式是强大的字符串模式工具

  • Java 提供Pattern+Matcher来完成匹配

  • JDK 7 起支持Unicode 6.0,能处理国际化文本

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/18 14:49:15

Java面试实战模拟:真实场景下的问题解答技巧

在当今快速发展的技术领域,Java 作为一门成熟且广泛应用的编程语言,其在企业级应用开发中占据着举足轻重的地位。因此,掌握 Java 开发技能并能在面试中脱颖而出,成为许多开发者追求的目标。本文将通过模拟真实的 Java 面试场景&am…

作者头像 李华
网站建设 2026/6/18 14:40:44

6款论文降AI率网站亲测:AI痕迹彻底消失,这款便宜又好用

2026年毕业季临近,知网、维普两大国内核心学术平台已完成AIGC检测算法的全面迭代升级:知网将AI检测模型更新至3.0版本,实现句子级精准识别,对AI生成内容的识别能力提升15-18个百分点;维普则重构检测逻辑,新…

作者头像 李华
网站建设 2026/6/18 14:40:33

猫抓浏览器扩展:网页视频资源一键下载的终极解决方案

猫抓浏览器扩展:网页视频资源一键下载的终极解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法下载网页视频而烦恼吗&…

作者头像 李华
网站建设 2026/6/18 14:33:08

PowerPC 601浮点单元流水线架构与性能优化深度解析

1. PowerPC 601浮点单元流水线架构深度解析在处理器设计的演进史上,PowerPC 601是一个标志性的里程碑。作为PowerPC家族的第一款量产芯片,它承载了将RISC理念与高性能浮点计算结合的重任。对于从事底层性能优化、编译器后端开发或者对经典微架构有研究兴…

作者头像 李华
网站建设 2026/6/18 14:26:55

3分钟掌握网易云音乐NCM文件解密:ncmdump终极使用指南

3分钟掌握网易云音乐NCM文件解密:ncmdump终极使用指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的加密NCM文件无法在其他播放器使用而烦恼吗?ncmdump这款开源工具能帮你轻松解决这…

作者头像 李华