很难用转义报价替换报价.我有一个字符串,其值为'Foo'bar"foobar",我试图用转义引号替换bar周围的引号,但它无效.我快疯了.
s=s.replaceAll("\"","\\\"");
Run Code Online (Sandbox Code Playgroud)
我希望s有'foo \"bar \"foobar'的值,但事实并非如此.有帮助吗?
Jon*_*eet 23
replaceAll
使用正则表达式 - 反斜杠只会逃避下一个字符,即使在替换中也是如此.
replace
相反,使用它很好......或者如果你想使用正则表达式形式,你可以在第二个参数中加倍反斜杠:
String after = before.replaceAll("\"", "\\\\\"");
Run Code Online (Sandbox Code Playgroud)
如果您需要使用正则表达式匹配输入,这可能很有用,但我强烈建议您使用非正则表单形式,除非您确实需要正则表达式行为.
就我个人而言,我认为String
使用正则表达式开始的方法是错误的- 比如foo.split(".")
会分散在每个字符而不是句点上的东西,这对于那些粗心的开发人员来说是完全出乎意料的.
归档时间: |
|
查看次数: |
14673 次 |
最近记录: |