我是否总是需要在不是"文字"的字符串中转义元字符?

Jim*_*Jim 7 java regex string

似乎有一个包含字符的字符串{}在正则表达式处理期间被拒绝.我可以理解这些是保留字符,我需要逃避它们,所以如果我这样做:

string.replaceAll("\\" + pattern);
Run Code Online (Sandbox Code Playgroud)

这是有效的,其中pattern任何字符串都以{.

问题:有没有办法避免已经包含此类元组的字符串出现此类问题,以便自动处理?在我看来它应该与在字符串文字中添加双引号相比,接受字符串作为已经具有双引号的输入

Joh*_*ica 8

用途Pattern.quote(String):

public static String quote(String s)
Run Code Online (Sandbox Code Playgroud)

返回String指定的文字模式String.

此方法生成一个String可用于创建Pattern与字符串匹配的字符s,就好像它是文字模式一样.

输入序列中的元字符或转义序列将没有特殊含义.

参数:
    s - 要文字化的字符串
返回:
    文字字符串替换
从:
    1.5


Fab*_*ken 4

您可以使用

java.util.regex.Pattern.quote(java.lang.String)
Run Code Online (Sandbox Code Playgroud)

转义正则表达式使用的元字符。