gpt4 book ai didi

java - 转义 Java RegEx 元字符

转载 作者:行者123 更新时间:2023-11-30 06:29:55 27 4
gpt4 key购买 nike

我正在尝试转义 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 个反斜杠,因为 $ 在正则表达式中有特殊含义。所以必须对 $ 进行转义,以获取:\$,并且该反斜杠必须自身在 java 字符串中进行转义:"\\$" .

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

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

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

参见:Matcher.replaceAll

关于java - 转义 Java RegEx 元字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com