[英]How can I extract a string from within a regex?
我需要模式匹配一些文本並將其替換為一些HTML。
當前,我正在使用以下正則表達式在我的C#MVC 3項目中查找[v AnyTextHere]。
\\[[v] (.*?)\\]
我遇到的問題是,找到上面的文本后,我想替換開頭和結尾,但將文本保留在中間。 因此,例如:
[v AnyTextHere]
變
<p>AnyTextHere</p>
我曾考慮過將所有匹配項放入一個數組,以修剪開始和結束,然后將其替換為周圍的HTML。 但是,我確定要成為正則表達式的大師,還有更好的方法,但我不是!
我還應該添加AnyTextHere部分,該部分將沒有空格,但是對於值可能是我無法控制的。 每頁可能還會有多個匹配項,但是每個匹配項只能出現一次。
我希望這是有道理的。
提前謝謝了。
嘗試這個:
string input = "[v AnyTextHere]";
string htmlOutput = Regex.Replace(input, "\\[v (.*?)\\]", "<p>$1</p>");
工作原理: $1
指向第一個括號內的值.*?
在這種情況下。 它也沒有必要把v
在字符類,因為這里只有一個字符允許的,所以你可以替換[v]
與v
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.