转义 Java RegEx 元字符

2023-11-30

我正在尝试转义 Java 中的 RegExp 元字符。以下是我想要的:

INPUT STRING: "This is $ test"
OUTPUT STRING: "This is \$ test"

这就是我目前正在做的事情,但它不起作用:

String inputStr= "This is $ test";
inputStr = inputStr.replaceAll("$","\\$");

但我得到了错误的输出:

"This is $ test$"

你需要:

inputStr.replaceAll("\\$", "\\\\\\$");

要替换的字符串需要 2 个反斜杠,因为$在正则表达式中具有特殊含义。所以 $ 必须转义,才能得到:\$,并且该反斜杠必须itself在java字符串中转义:"\\$".

替换字符串需要 6 个反斜杠,因为\ and $替换字符串有特殊含义:

  • \ 可用于转义替换字符串中的字符。
  • $ 可用于在替换字符串中进行反向引用。

因此,如果您想要的替换字符串是“\$”,则需要对这两个字符进行转义以获得:\\\$,然后您需要使用的每个反斜杠 - 其中 3 个,1 个文字,2 个用于转义 - 必须also在java字符串中转义:"\\\\\\$".

See: 匹配器.replaceAll

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转义 Java RegEx 元字符 的相关文章

  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • preg_match_all 查询仅显示有问题的外部组

    我无法弄清楚如何只显示 preg 查询的外部组级别 我会给你一个例子 preg match all start end input matches 这个输入start1 start2 2end 1end产生这个输出start1 start2
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 与有效正则表达式匹配的正则表达式

    是否存在与有效正则表达式匹配的正则表达式 我知道正则表达式有多种风格 其中一种就可以了 是否存在与有效正则表达式匹配的正则表达式 根据定义 它非常简单 No 所有正则表达式的语言是no regular语言 只需查看嵌套括号 因此不可能有re
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • 使用 bigquery 将字符串拆分为多列

    我在 BigQuery 中有一个包含数百万行的表 我想将 adx catg id 列拆分为多个新列 请注意 adx catg id 列包含任意数量的由空格分隔的单词 如果字符串仅包含少于五个单词 下面的查询示例可以将 adx catg id
  • 如何对 NetworkX 中创建的图 g 进行聚类?

    我正在尝试将聚类应用于数据集 在此之前 我必须将图划分为 n 个簇 但我不知道该怎么做 Suppose 边缘列表你的未加权的 and 不定向的 graph保存在文件edges txt中 您可以按照以下步骤对图的节点进行聚类 Step 1 g
  • 在调用委托之前将我的空检查代码变灰

    我在 VS 2015 中编写统一代码 这意味着它是在 c 4 中并且 null 条件运算符不可用 在调用委托之前 我进行了空检查 但代码是灰色的 是不是说灰码和注释一样无效呢 如果是这样 我应该怎么做才能防止调用空委托 public del
  • 无法从 grails 项目构建 war

    我正在构建 Grails 2 4 4 项目 我遇到了非常奇怪的问题 我可以 运行应用程序 我可以 编译 它 但我不能 战争 或 运行战争 它 将 src groovy 目录中的 Enum 类 AlertType 导入到域类 Alert 时出
  • VSTO - MS Office“配色方案”更改事件

    使用 VSTO 如何获取 MS Office 配色方案更改的通知 希望 Office 2010 中存在更好的东西 以下是我在 Office 2007 和 Word 中使用的内容 这不是任何通知 只是要检查的内容 const string O
  • AccountManager:invalidateAuthToken 不会使令牌失效

    我正在尝试从存储在 Android 设备中的 Google 帐户获取全新的令牌 但我得到的只是我过去几天缓存的旧令牌 看起来它被缓存在手机的某个地方 甚至没有发送互联网请求 我在没有互联网连接的情况下在应用程序中进行了测试 并且返回了相同的
  • PL/SQL 过程的同步。如何保证程序一次只执行一个? [复制]

    这个问题在这里已经有答案了 某些 PL SQL 过程需要花费大量时间进行评估 如重新计算和更新大量数据 我想限制将此过程评估为单个的执行上下文的数量 如果其他上下文执行它 则什么也不做 但我不知道在 PL SQL 代码中使用哪些原子操作 N
  • 接口 VS API VS 公共类

    我对这三个术语的含义和区别有点困惑 接口 APIs 公开课 我之前问过 API 和 Public 类之间有什么区别吗 这是问题 公共方法与公共 API 我明白了 但现在有了新概念界面 我又对Interface和API以及Public cla
  • 为什么 numpy 列表访问比普通 python 慢?

    我的印象是 numpy 对于列表操作会更快 但以下示例似乎表明情况并非如此 import numpy as np import time def ver1 a i for i in range 40 b 0 for i in range 4
  • Visual Studio 2015 jQuery 智能感知不工作

    因此 我创建了一个 Visual Studio 2015 空 ASP net Core 应用程序 并尝试使用 Bower 添加 jQuery 但它没有获取 jQuery 的智能感知 它显示一条警告 指出 智能感知无法确定准确的值 完成列表
  • Bash 脚本数组转 csv

    我想从我的数组中执行逗号分隔的字符串 在我的脚本中我收集数据到数组outputArr然后我想echo来检查一下 但现在我被困住了 我想使用以下命令在控制台上打印它 echo outputArr 但我得到了错误的输出 所以我尝试调试它并这样写
  • 如何判断数据库更新是否成功?

    我正在尝试修改一些遗留的ASP经典代码 并且我对ASP了解不多 如何判断数据库插入 更新或删除是否失败 我所说的 失败 是指它要么引发错误 要么影响零行 以下是 ASP 文件中已有的用于设置数据库连接的代码 On Error Resume
  • 外包RSA加密和解密的问题

    我在 RSA 加密和解密方面遇到问题 我正在 android 中开发 想外包 RSA 加密和解密 在我尝试外包之前 我的源代码运行良好 我创建了私钥和公钥 并将其保存为 private key 和 public key 该错误是由该方法引起
  • 如何在 JavaScript 变量中存储多个 jQuery 选择器?

    显然 如果多次使用 jQuery 选择器 将它们存储在变量中是个好主意 not如果只使用一次是个好主意 我的问题是 如何在变量中存储可互换使用的多个选择器 例如 假设我选择 object1 object2 然后我选择 object1 我将如
  • 如何以编程方式更新元素并将其添加到 XSD

    我需要以编程方式更新 java 中的现有 XSD 如下所示
  • group_concat 结果在 IN 条件下不起作用

    有没有可能的方法将 group concat 的结果放入 SQL 查询的 IN 条件中 在网络主表中 我在 IndustryId 列中有逗号分隔的字段 喜欢 userId industryId 123 3831 123 2832 3832
  • 错误:类型 List 的方法 getId() 未定义

    我有一个方法来创建类对象列表 public List
  • Tkinter 将视频插入窗口[重复]

    这个问题在这里已经有答案了 我目前有这段代码用于从 tkinter 程序打开 mp4 文件 import os from tkinter import app Tk app title Video Player Fcanvas Canvas
  • 如何更改菜单栏中子菜单的标签颜色?

    我想使用菜单栏更改子菜单的标签颜色 我正在使用的代码如下
  • 转义 Java RegEx 元字符

    我正在尝试转义 Java 中的 RegExp 元字符 以下是我想要的 INPUT STRING This is test OUTPUT STRING This is test 这就是我目前正在做的事情 但它不起作用 String input