使用Regex替换换行符

时间:2011-08-23 12:10:19

标签: regex vb.net

如何使用正则表达式替换所有类型的换行符(CR,LF和CrLf)?

我尝试了“\ n”和“\ r \ n”的不同组合,但没有找到它们。

formatedString = System.Text.RegularExpressions.Regex.Replace(text, "\r\n", "[Exp 1]")

以下代码完成了这项工作,但它让我觉得我似乎无法使用Regexp替换换行符。

formatedString = formatedString.Replace(Environment.NewLine, "[Environment.NewLine]") ' Equals CR
formatedString = formatedString.Replace(ControlChars.CrLf, "[ControlChars.CrLf]") ' CR and LF
formatedString = formatedString.Replace(ControlChars.Cr, "[ControlChars.Cr]") ' Carriage Return (CR)
formatedString = formatedString.Replace(ControlChars.Lf, "[ControlChars.Lf]") ' Line Feed (LF)

欢迎所有建议! :)

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

答案 2 :(得分:0)

经过测试,可以正常工作:

dim source = String.Concat("Some string", VbLf, "with", VbCr, "line", VbCrLf, "breaks")
dim result = Regex.Replace(source, "[\r\n]", " ")

https://dotnetfiddle.net/BcMbhZ

答案 3 :(得分:-1)

基本上你正在做正确的事情,除非你需要改变

formatedString = System.Text.RegularExpressions.Regex.Replace(text, "\n\r", "[Exp 1]")

formatedString = System.Text.RegularExpressions.Regex.Replace(text, "[\n\r]", "[Exp 1]")

即。 只需添加[] 即可使其与\ r或\ n而非“\ n \ r”匹配。

希望这有帮助