【问题标题】:What is a regular expression for inserting a string into a Find and Replace match?将字符串插入查找和替换匹配项的正则表达式是什么?
【发布时间】:2015-06-09 16:02:56
【问题描述】:

我需要一个正则表达式来替换以下所有实例:

Session["ANYWORD"] ==

Session["ANYWORD"].ToString() ==

我有Session\["\w+"]\s==,它正确找到正确的匹配项,但我不知道如何将.ToString()插入匹配项。

什么,或者更恰当地说,有一个正则表达式来做我需要做的事情吗?

【问题讨论】:

  • 你会想要Regex.Replace (msdn.microsoft.com/en-us/library/…)。特别是 Replace(String, MatchEvaluator) 重载我认为因为 MatchEvaluator 会让您的替换取决于您找到的内容。

标签: c# regex replace


【解决方案1】:

您需要将方括号之间的值放入一个捕获组,并将其替换为您的替换项。

简而言之,这样就可以了:

Regex.Replace(input, @"Session\[(""\w+"")]\s==", @"Session[$1].ToString() ==");

$1 将插入您的第一个捕获组的内容(由模式中的括号确定 -> ())。

如果你愿意,你也可以使用命名组,那么它就变成了:

Regex.Replace(input, @"Session\[(?<anyword>""\w+"")]\s==", @"Session[${anyword}].ToString() ==");

Here is the MSDN doc 表示 Regex.Replace 的特定重载。

有关 .NET 中的捕获组替换的更多信息,look here

【讨论】:

    猜你喜欢
    • 2014-08-03
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    相关资源
    最近更新 更多