需要正则表达式匹配[#URL ^ Url说明^#]

时间:2013-08-23 10:51:18

标签: c# regex

I need regex to find this text  
  

[#URL ^ Url说明^#]

在一个字符串中,并用

替换它
  

<a href="some link">Url Description</a>

“Url Description”可以是任何语言的字符集。

任何正则表达专家在那里帮助我?

感谢。

2 个答案:

答案 0 :(得分:2)

可能有点令人困惑,但您可以使用以下内容:

string str = @"[#URL^Url Description^#]";
var regex = new Regex(@"^[^^]+\^([^^]+)\^[^^]+$");
var result = regex.Replace(str, @"<a href=""some link"">$1</a>");

第一个^表示字符串的开头;
[^^]+表示任何不是插入符号的字符;
\^是字面插入符号;
$是字符串的结尾。

基本上,它会捕获插入符之间的所有字符(^),并在<a>标记之间替换它。

请参阅ideone demo

您也可以用以下内容替换最后一行:

var result = regex.Replace(str, @"<a href=""" + link + @""">$1</a>");

其中link是包含您要替换的链接的变量。

答案 1 :(得分:1)

为什么不使用String.Replace()?正则表达式可以工作,但看起来格式定义很好,正则表达式更难阅读。

string url = "[#URL^blah^#]";

string url_html = url.Replace("[#URL^", "<a href=\"http://www.somewhere.net\">")
                     .Replace("^#]", "</a>");