[英]How do I replace the a portion of the string with special characters
我想用"\\\\_\\\\_\\\\_\\\\_\\\\_"
替换字符串的某个部分
(e.g. String str = "Hello World")
如果我做str.replaceAll("World", "\\\\_\\\\_\\\\_\\\\_\\\\_");
我在替换后的字符串中看不到"\\"
字符,我希望它能显示"Hello \\_\\_\\_\\_\\_"
你需要:
str = str.replaceAll("World", "\\\\_\\\\_\\\\_\\\\_\\\\_");
\\
是Java字符串中的转义字符。 所以意味着一个文字\\
你需要用另一个\\
作为\\\\
来逃避它。
\\
也是正则表达式引擎的转义字符。 因此,一个\\\\
在Java字符串将被发送到正则表达式引擎\\
这是不是字面上的处理,而是将被用来逃避以下字符。
要将\\\\
传递给regex引擎,您需要在Java字符串中包含\\\\\\\\
。
由于您正在用另一个字符串替换字符串(而不是模式),因此实际上不需要正则表达式 ,您可以使用String
类的replace
方法:
input = input.replace("World", "\\_\\_\\_\\_\\_");
您需要使用4个反斜杠来插入单个反斜杠。
重点是:在文字java字符串中,反斜杠是一个转义字符,因此文字字符串“\\”是一个反斜杠。 但在正则表达式中,反斜杠也是一个转义字符。 正则表达式\\匹配单个反斜杠。 这个作为Java字符串的正则表达式变为“\\\\”。
所以尝试这样的事情:
String str = "hello world";
System.out.println(str.replace("world","\\\\_\\\\_\\\\_\\\\"));
看看这篇文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.