2013-12-12 97 views
0

我需要模式匹配一​​些文本,並用一些HTML取代它。如何從正則表達式中提取字符串?

目前我正在使用以下正則表達式在我的C#MVC 3項目中查找[v AnyTextHere]。

\\[[v] (.*?)\\] 

我遇到的問題是,一旦我找到了上面的文字,我再要替換的開始和結束,但保持在中間的文本。因此,例如:

[V AnyTextHere]

成爲

<p>AnyTextHere</p> 

我曾經想過把所有的比賽中數組微調的開始和結束,然後替換他們回來的HTML在他們旁邊。但是我敢肯定,如果我成爲正則表達式的主人,那麼我有更好的辦法,我不是!

我還應該添加AnyTextHere部分將沒有空格,但不能控制該值是什麼。每頁也可能有多個匹配,但每個匹配只能出現一次。

我希望這是有道理的。

非常感謝提前。

回答

4

試試這個:

string input = "[v AnyTextHere]"; 
string htmlOutput = Regex.Replace(input, "\\[v (.*?)\\]", "<p>$1</p>"); 

這是如何工作:在$1指的是在這種情況下是第一個括號內,.*?值。也不需要將v放在字符類中,因爲只允許使用一個字符,因此您可以用v

+1

替換[v]感謝您的快速響應。這正是我所需要的。 –

相關問題