我有一堆的文本字符串,它看起來像這樣的事情:正則表達式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