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

java有哪些字符需要转译

在 Java 中,当使用正则表达式相关的方法(如 String.split()Pattern.matcher() 等)时,某些字符具有特殊含义,需要通过转义(在前面加 \)来表示其字面意义。需要转义的字符主要包括以下几类:

  1. 正则表达式元字符(共 12 个):

    • . :匹配任意字符(除换行符)
    • * :匹配前面的子表达式零次或多次
    • + :匹配前面的子表达式一次或多次
    • ? :匹配前面的子表达式零次或一次
    • ^ :匹配输入字符串的开始位置
    • $ :匹配输入字符串的结束位置
    • | :表示“或”关系
    • () :标记子表达式的开始和结束
    • [] :标记字符集的开始和结束
    • {} :标记限定符的开始和结束

    示例:要匹配字符串中的 *,需要写成 \\*(Java 中用两个反斜杠,第一个是 Java 字符串的转义,第二个是正则的转义)。

  2. 反斜杠 \ 本身
    反斜杠在 Java 字符串中是转义字符,若要表示一个字面意义的反斜杠,需要用 \\\\(两个反斜杠在 Java 中表示一个实际的反斜杠,在正则中再转义一次)。

  3. 其他特殊场景

    • 在字符集 [] 中,除了 -(表示范围)、^(表示非)、](结束符)外,其他元字符通常不需要转义。例如 [.*+] 中的 .*+ 会被当作普通字符。

示例代码

public class RegexEscapeExample {public static void main(String[] args) {// 匹配点号 .String str1 = "a.b.c";String[] parts1 = str1.split("\\."); // 转义后按点号分割System.out.println(Arrays.toString(parts1)); // 输出 [a, b, c]// 匹配星号 *String str2 = "x*y*z";String[] parts2 = str2.split("\\*"); // 转义后按星号分割System.out.println(Arrays.toString(parts2)); // 输出 [x, y, z]// 匹配反斜杠 \String str3 = "a\\b\\c";String[] parts3 = str3.split("\\\\"); // 用四个反斜杠匹配一个反斜杠System.out.println(Arrays.toString(parts3)); // 输出 [a, b, c]}
}

总结:在使用正则相关方法时,遇到上述元字符需要转义,转义方式是在字符前加 \\(Java 字符串中)。非正则场景下(如普通字符串拼接),不需要转义这些字符。

http://www.dtcms.com/a/294999.html

相关文章:

  • 2026 拼多多秋招内推码(提前批)
  • 前端学习之JavaScript事件监听解析
  • Bonk发币教学全流程
  • 欧盟网络安全标准草案EN 18031详解
  • JDialong弹窗
  • 计算机网络学习----Https协议
  • 亚马逊云科技 上海AI研究院 突然解散 | AI早报
  • 13. event.target 和 event.currentTarget 区别
  • 【C语言进阶】动态内存管理(2)
  • 力扣(LeetCode) ——轮转数组(C语言)
  • Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(2)
  • 【Web APIs】JavaScript 节点操作 ⑦ ( 创建节点案例 | 网页评论功能 )
  • 旅游管理虚拟仿真实训室:重构实践教学新生态
  • 掌握Autofac:IOC容器实战指南
  • GaussDB view视图的用法
  • 分布式光伏发电项目简易故障录波装置介绍
  • [硬件电路-78]:模拟器件 - 从宏观到微观:高频信号下电路与光路的特性演变与挑战
  • Hexo - 免费搭建个人博客05 - 更新个人博客
  • GUI简介 - OpenExo
  • 回顾 Palantir:八年之旅的反思
  • ​​SBOM 软件供应链安全(转)
  • haproxy的七层代理
  • Day01_C++编程
  • Ollama(3)模型迁移和API使用
  • Modbus协议详解与c#应用
  • 重写 与 重载
  • pig cloud框架中引入websocket
  • nginx websocket 代理 断网后 再联网 不能连接
  • Windows下编译UTF8-CPP
  • 前端学习 5:DFT