我正在尝试使用String.replaceAll(regex, repl)正则表达式文字"\ C"(不是转义序列),但"\\C"返回正则表达式错误,"\\\\C"创建"\\ C",并"\\\C"使其尝试生成转义序列.我该做什么?
编辑:这是我得到的错误:
java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 1
\C
^
at java.util.regex.Pattern.error(Pattern.java:1713)
at java.util.regex.Pattern.escape(Pattern.java:2177)
at java.util.regex.Pattern.atom(Pattern.java:1952)
at java.util.regex.Pattern.sequence(Pattern.java:1834)
at java.util.regex.Pattern.expr(Pattern.java:1752)
at java.util.regex.Pattern.compile(Pattern.java:1460)
at java.util.regex.Pattern.<init>(Pattern.java:1133)
at java.util.regex.Pattern.compile(Pattern.java:823)
at <My Class>.<My Function>(<My Class>.java:<Line>)
Run Code Online (Sandbox Code Playgroud)
等.
编辑:我发现我最大的问题涉及意外返回原始字符串:P.我现在有工作:)
\\\\C是java中匹配字符串的正确正则表达式\C.
"foo bar \C".replaceAll( "\\\\C", "cc" );
// -> "foo bar cc"
Run Code Online (Sandbox Code Playgroud)
这些是规则:
\由\\\C意味着C escaped(如果C具有特殊含义并且确实需要转义则无关紧要)"\C"正常的正则表达式的字符串,\\C但是因为它\\\\C在Java中得到了第一个规则.| 归档时间: |
|
| 查看次数: |
1433 次 |
| 最近记录: |