Java 转义字符串中的多个不同字符
我想用反斜杠(Java 转义字符串中的多个不同字符,java,Java,我想用反斜杠(变成\\\,$变成\,$变成\等等)来转义给定Java字符串中的不同字符(\\\\\\) 是否可以在不多次调用字符串上的String#replace或String#replaceAll方法的情况下对此进行归档 您可以使用以下正则表达式 String escaped = s.replaceAll("[" + Pattern.quote("#$%&\\^_{}~") + "]", Matcher.quoteReplacement("\\")+"$0") 可以使用以下正
变成\\\
,$
变成\
,$
变成\
等等)来转义给定Java字符串中的不同字符(\\\\\\
)
是否可以在不多次调用字符串上的
String#replace
或String#replaceAll
方法的情况下对此进行归档 您可以使用以下正则表达式
String escaped = s.replaceAll("[" + Pattern.quote("#$%&\\^_{}~") + "]",
Matcher.quoteReplacement("\\")+"$0")
可以使用以下正则表达式
String escaped = s.replaceAll("[" + Pattern.quote("#$%&\\^_{}~") + "]",
Matcher.quoteReplacement("\\")+"$0")
是的,有可能。你找不到这样做的策略吗?例如,使用循环?为什么要多次调用
String#replaceAll
?它使用正则表达式,因此您可以找到每个特殊字符,并将其替换为\
,后跟找到的内容。@Pshemo您能再解释一点怎么做吗?看看Harald的答案。他张贴了代表我意思的代码。简而言之,我们可以在替换零件中使用$x
符号来表示组x
中的匹配项。由于组0代表整个匹配,我们可以编写$0
来使用regex找到的内容。@Pshemo感谢您的解释。那正是我想要的。谢谢是的,这是可能的。你找不到这样做的策略吗?例如,使用循环?为什么要多次调用String#replaceAll
?它使用正则表达式,因此您可以找到每个特殊字符,并将其替换为\
,后跟找到的内容。@Pshemo您能再解释一点怎么做吗?看看Harald的答案。他张贴了代表我意思的代码。简而言之,我们可以在替换零件中使用$x
符号来表示组x
中的匹配项。由于组0代表整个匹配,我们可以编写$0
来使用regex找到的内容。@Pshemo感谢您的解释。那正是我想要的。谢谢,这正是我想要的。谢谢,这正是我想要的。非常感谢。