繁体   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