Regex.Replace 拒绝用换行符替换

2023-12-14

您好,我编写了一个非常简单的 C# 程序,从命令行使用 C# Regex,而不是依赖于 MS Word 搜索和替换。问题是,即使正则表达式可以很好地识别 \r 和 \n ,当我尝试用其中任何一个替换字符串时,它似乎用转义字符而不是字符本身替换它。

    [STAThread]
    static void Main(string[] args)
    {
        string initial = Clipboard.GetText();
        Console.Write("Find: ");
        string find = Console.ReadLine();
        Console.Write("Replace: ");
        string replace = Console.ReadLine();
        string final = Regex.Replace(initial, find, replace);
        Clipboard.SetText(final);
    }

例如,我从剪贴板输入的字符串将是“Woodcock,american”(末尾带有回车换行符)。模式将是 @",.+\r",它匹配得很好,替换字符串将是 @"\r\n"。这会产生字符串“Woodcock\r\n”(为了清楚起见,它们是字母 r 和 n)。我究竟做错了什么?

edit:Anirudh 的答案部分解决了我的问题,我相应地更新了代码。然而,似乎当我向 ReadLine 输入“\r\n”时,它也会以某种方式转义,而如果我写string replace = "\r\n"它实际上用回车换行符替换字符串。链接到新问题:C# ReadLine 转义回车/换行符?


这是因为您使用的是逐字字符串,即@""这会逃避 \r\n 将它们视为文字而不是特殊字符!

替换字符串应该是"\r\n" NOT @"\r\n"

解决您的其他问题

  Output=Regex.Replace(input,"\\r?\\n","\r\n");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Regex.Replace 拒绝用换行符替换 的相关文章

随机推荐

  • 如何在sql中定义变量而不是表名?

    我有这个 SQL 查询 delete from Main dbo ACTIVITY insert into Main dbo ACTIVITY select from MainTemp dbo ACTIVITY 我想在执行 for 后对 1
  • 获取具有深层相关实体的对象

    假设我有一个具有一对一关系的实体类 如下所示 public class Transaction public int TransactionID get set public Double Amount get set public int
  • 通过 Carrierwave 和 Fog 上传文件时出现 Exconn::Errors::SocketError

    这是我最近遇到的问题的延续 堆栈级别太深错误 我认为是由强参数产生的 每当我做一个Post创建 其中涉及文件上传 我收到此错误 Started POST posts for 127 0 0 1 at 2014 08 28 08 47 09
  • 使用 Java 7 验证 OpenSSL 生成的 S/MIME 数字签名文件

    我们有一个流程 使用 OpenSSL 生成 S MIME 数字签名 稍后需要使用 Java 7 进行验证 一方面 我们使用 OpenSSL 读取文本文件并生成签名的数字输出 稍后进行验证 我们曾经使用 OpenSSL 进行验证 但现在我们需
  • 如何在 Jenkins 中 fork 一个后台进程?设置 BUILD_ID 并使用 nohup 似乎不起作用

    我在 Jenkins 版本 1 578 中有一份 Maven 工作 下面的 maven 代码片段 用 Groovy 代码编写的 Ant 脚本 启动了一个 Fuse 服务器 我无法让 Jenkins 在作业完成后让它继续运行
  • React hooks 重复的 React 包

    如上所述here 在react库中使用hooks时 经常会遇到react错误说hooks can only be called inside the body of a function component导致此错误的最可能原因是您的库链接
  • 将二进制数据(std::string)写入std::ofstream?

    我有一个std string包含我需要写入文件的二进制数据的对象 能ofstream f name f lt lt s 有什么问题吗 我需要完全按照原来的方式读回数据 我当然可以使用fwrite s c str s size 1 filep
  • 消除自动增量中的间隙

    假设我有一个带有自动递增 id 字段的 MySQL 表 然后我插入 3 行 然后 我删除第二行 现在表的 id 变为 1 3 我可以让 MySQL 纠正这个问题并将其设为 1 2 而无需编写程序吗 一旦创建了自动索引列 MySQL 就不允许
  • 将 MFMailComposeViewController 推送到导航堆栈上?不以模态方式呈现

    我有一个表格视图 在其中一个单元格中 它显示 联系人 选择此单元格后 我想推入 MFMailComposeViewController 我似乎只能以模态方式呈现这个 MFMailComposeViewController 这里有什么问题 T
  • 当视图大小依赖于多个子视图时指定的约束

    我正在使用自定义单元格UITableView 单元格中有 4 个视图 3UILabels and 1 UIImageView 灰色的 如下图所示 标签的文本是动态的 因此宽度和高度也是动态的 这里的宽度为UIImageView取决于2个标签
  • 如何使用控制台开发工具更新 Angular 4+ 表单值?

    我正在尝试使用控制台 开发工具 填写 Angular 4 表单 这就是我现在正在做的事情 function fillForm let el document querySelector input ng reflect name my in
  • 多个异步/等待链

    如何在 C 中进行多个 async await 链接 例如 启动几个 HTTP 请求 然后不等待所有请求 而是在每个请求完成后启动新请求 最简单的方法是编写一个async method async Task DownloadAndFollo
  • Pytorch几何稀疏邻接矩阵到边缘索引张量

    我的数据对象有data adj t参数 给我稀疏邻接矩阵 我怎样才能得到edge index大小张量 2 num edges 由此 正如你在docs 由于此功能仍处于实验阶段 一些操作 e g 图池方法 可能仍然需要您输入edge inde
  • 对动态数据透视列进行排序

    我有以下 SQL 查询 其中创建的列是无序的 我不太确定如何修复它 SELECT rhead rhcust AS Cust ID rdetl rdextp AS Inv Amt rhead rhivdt AS Inv Date INTO T
  • 测试java HBase连接

    我正在尝试使用 HBase Java API 将数据写入 HBase 我通过 Ambari 安装了 Hadoop HBase 以下是当前设置配置的方式 final Configuration CONFIGURATION HBaseConfi
  • 如何以编程方式安装 Android 应用程序而不提示,

    我正在尝试在没有提示的情况下以编程方式安装该应用程序 意味着安装应用程序时不会显示用户必须按下的弹出窗口install选项 我跟着THIS回答 但每当我运行代码时 它都会抛出错误 java io IOException 运行 exec 时出
  • 如何使用 Cloudformation 在 AWS WAF 中启用 WebACL 日志记录?

    我正在经历AWS WAF 云信息文档 我找不到启用日志记录的方法 我可以通过控制台启用日志记录 但我想通过 Cloudformation 来执行此操作 以便在新堆栈中默认启用它 如何通过 Cloudformation 在 AWS WAF W
  • MS Office 2007 文件的 PHP 5.3.5 fileinfo() MIME 类型 - magic.mime 更新?

    在 PHP 上传中 我尝试验证正在上传的文件的 MIME 类型 以匹配应用程序的一组有效的 MIME 类型 当尝试使用 fileinfo 确定 Office 2007 文件的 MIME 类型时 它没有检测到相应的 MIME 类型 相反 MI
  • 带 React Hooks 的可重用下拉菜单

    正如我从 React 文档中得到的那样 使用钩子不需要大量代码重构 并且可以轻松包含在现有代码中 我想制作可重用的下拉菜单 从反应组件渲染方法调用 这是我的代码 navigation js import DropdownToggler fr
  • Regex.Replace 拒绝用换行符替换

    您好 我编写了一个非常简单的 C 程序 从命令行使用 C Regex 而不是依赖于 MS Word 搜索和替换 问题是 即使正则表达式可以很好地识别 r 和 n 当我尝试用其中任何一个替换字符串时 它似乎用转义字符而不是字符本身替换它 ST