我需要搜索一个字符串,并用从数据库中提取的值替换所有出现的%FirstName%%PolicyAmount%.问题是名字的大小写不同.这使我无法使用String.Replace()方法.我看过关于这个主题的网页

Regex.Replace(strInput, strToken, strReplaceWith, RegexOptions.IgnoreCase);

然而,由于某种原因,当我try 用$0替换%PolicyAmount%时,替换从未发生.我认为这与美元符号在正则表达式中是一个保留字符有关.

我是否可以使用另一种方法来处理regex特殊字符,而不需要对输入进行消毒?

推荐答案

From MSDN
$0 - "Substitutes the last substring matched by group number number (decimal)."

在.NET正则表达式中,组0始终是完全匹配的.对于文字$,您需要

string value = Regex.Replace("%PolicyAmount%", "%PolicyAmount%", @"$$0", RegexOptions.IgnoreCase);

.net相关问答推荐

NETSDK1083:无法识别指定的 RuntimeIdentifierwin10-x64

EFCore.DbSet.Update 方法添加新行而不是更新它

使用 DataDog 收集 OpenTelemetry 跟踪

仅使用 .NET GetBytes 方法转换有效字节而不创建问号

为什么这个同步运行的异步睡眠会挂起?

问:在 Blazor WASM 应用程序中存储 api 密钥的最佳方式是什么?

正则表达式在空格上拆分,除非在引号中

既然 .NET 有一个垃圾收集器,为什么我们需要终结器/析构器/dispose-pattern?

JavaScript 中的IsNullOrWhitespace?

如何获取 Sql Server 数据库中所有模式的列表

如何使用 log4net 记录跟踪消息?

如何在不丢失数据的情况下重命名 Entity Framework 5 Code First 迁移中的数据库列?

InternalsVisibleTo 属性不起作用

解密 .NET clr20r3 异常参数 P1..P10

更改 SqlConnection 超时

在 .NET 中,null 的哈希码是否应该始终为零

使用 DateTime.ToString() 时获取日期后缀

.NET 中的 java.lang.IllegalStateException?

如何为 Dapper 查询动态创建参数

您可以将 Microsoft Entity Framework 与 Oracle 一起使用吗?