从字符串中移除 \r

20

我有一些HTML字符串,我已经尽力多次删除 \r,但都失败了。

text.Replace("\r\n", "").Replace("\r", "").Replace("\n", "");

这可能是一个愚蠢的问题,但还是值得问一下。您是想移除换行符,还是想移除字面上的字符串 "\r"? - David
也许你需要删除<br>/<br />标签。或者,也许你没有分配替换的结果,所以text = text.Replace.. - thirtydot
5个回答

36

你需要将结果分配回text,如下所示:

text = text.Replace("\r\n", "").Replace("\r", "").Replace("\n", "");

太棒了,我差不多和这个问题战斗了3个小时。 - Afnan Bashir
1
@Afnan,下次记得提前2小时45分钟到这里哦 :-) - Klaus Byskov Pedersen
是的,但你需要转义反斜杠。 - Klaus Byskov Pedersen
@Afnan,Regex.Replace是什么?text=text.Replace("\\","")有什么问题? - Klaus Byskov Pedersen
我能否获取两点之间的字符串?如果有一个字符串和我知道两个字符的位置,我能否获取这些点之间的所有字符串?int UrlStart = e.Result.IndexOf("<p>"); int urlEnd = e.Result.IndexOf("</p> </td>"); - Afnan Bashir
显示剩余4条评论

3
你已经接近了:
text = text.Replace("\r\n", "").Replace("\r", "").Replace("\n", "");

你必须将.Replace操作的结果赋回给字符串本身(或另一个字符串)。否则,结果就无处可去。


1

text.Replace 返回新修改的字符串。它不会改变它所操作的字符串。因此,请确保您捕获返回值。


0
str = str.Replace("\\\\r","").Replace("\\\\n","");

您可能需要使用转义字符


1
\ 不是字面意思,\r 是转义序列,表示回车符 (0x0D),连同换行符 \n (0x0A),这就是操作者想要移除的内容,不是字面值 \ (0x5C) r (0x72) 等等。 - Chris Taylor
2
你也可以使用 str = str.Replace(@"\r", string.Empty).Replace(@"\n", string.Empty); 或者直接使用带有字符的重载 Replace 方法,例如:str.Replace('\r', string.Empty)... - tivo
@tivo,不可以。没有一个重载的Replace函数接受一个字符和一个字符串作为两个参数。 - Jake Smith

0
.Replace("\r", "").Replace("\n", "")

在我的输入中没有移除 "\r\n"。然后,我想起了 \r 和 \n 这两个特殊字符需要进行转义,于是以下方法对我起到了作用:

.Replace(@"\r", "").Replace(@"\n", "")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接