将模式替换为使用通配符子表达式作为键的外部字符串

本文关键字:表达式 外部 字符串 通配符 替换 模式 | 更新日期: 2023-09-27 18:13:29

我有一个包含各种标记的字符串,例如,我需要用所指示的文件名的内容替换整个匹配的字符串,请记住文件名实际上是未知的,因此不能直接搜索。

我得到了它的大部分,但让我困惑的是如何在普通替换之外使用子表达式,而不是作为方法的参数来返回传递的文件内容。

page= Regex.Replace(page,"<!--Include:(.*)-->",getFileContents($1));

$1是挂起我的原因,因为我不能像那样把子表达式取出来。

提前感谢!

将模式替换为使用通配符子表达式作为键的外部字符串

您可以使用正则表达式。Replace的过载取MatchEvaluator

page= Regex.Replace(page,"<!--Include:(.*)-->", 
                    m => getFileContents(m.Groups[1].Value));