繁体   English   中英

如何用特殊字符替换字符串的一部分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM