簡體   English   中英

如何從正則表達式中提取字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM