我有一堆的文本字符串,它看起来像这样的事情:正则表达式C#可以在替换中使用一个变量吗?
h1. this is the Header
h3. this one the header too
h111. and this
而且我得到了功能,即假设来处理该文本取决于什么可以说的迭代它被称为
public void ProcessHeadersInText(string inputText, int atLevel = 1)
所以输出应该看起来像一个下面的被称为
情况下ProcessHeadersInText(inputText, 2)
输出应该是:
<h3>this is the Header<h3>
<h5>this one the header too<h5>
<h9 and this <h9>
(最后一个看起来是这样的,因为如果值后h
信超过9
它想在输出9
)
于是,我开始考虑使用正则表达式。
这里的例子https://regex101.com/r/spb3Af/1/
(正如你看到的,我想出了正则表达式这样(^(h([\d]+)\.+?)(.+?)$)
,并试图使用替换就可以了<h$3>$4</h$3>
)
它几乎是我正在寻找,但我需要在标题级别添加一些逻辑。
是否有可能在替换中添加任何带有变量的工作?
或者我需要找到其他方法? (首先提取所有标题,替换em考虑函数变量和标题的值,并且只有在我使用正则表达式后才写?)
你可以只使用一个委托,而不是只是一个替换字符串。 – Joey
您可以使用MatcEvaluator https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.matchevaluator(v=vs.110).aspx(可能是@Joey在说什么) –
噢,那很棒理念! – DanilGholtsman