使用正则表达式替换插入换行符

时间:2016-07-16 03:08:12

标签: c# regex replace

我正在尝试使用正则表达式替换插入换行符,如下所示:

strFile = Regex.Replace(
    strFile,
    @"(FA|BO)\s+(\d{3}-\d+)(\s+)(.*?)(\s+)(\d+,*\d*\.\d+)\s*(FA|BO)\s+(\d{3}-\d+)(\s+)(.*?)(\s+)(\d+,*\d*\.\d+)\s*",
    @"$2&$4&$6\n$8&$10&$12"
)

但我最终(字面意思)word\nword而不是实际换行符。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

通过对替换字符串使用@""字符串文字,您将禁用转义字符解析。如果您将第二个字符串的更改设置为普通字符串,因为您没有需要维护的任何\字符,它将按您的预期工作。

strFile = Regex.Replace(
    strFile, 
    @"(FA|BO)\s+(\d{3}-\d+)(\s+)(.*?)(\s+)(\d+,*\d*\.\d+)\s*(FA|BO)\s+(\d{3}-\d+)(\s+)(.*?)(\s+)(\d+,*\d*\.\d+)\s*",
    "$2&$4&$6\n$8&$10&$12");