0
I need regex to find this text  

[#URL^网址说明^#]

在一个字符串中并将其替换为

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

“网址描述”可以是任何语言的字符集。

有任何正则表达式专家可以帮助我吗?

谢谢。

4

2 回答 2

2

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

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

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

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

ideone 演示

您也可以将最后一行替换为:

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

link包含要替换的链接的变量在哪里。

于 2013-08-23T11:46:22.943 回答
1

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

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

string url_html = url.Replace("[#URL^", "<a href=\"http://www.somewhere.net\">")
                     .Replace("^#]", "</a>");
于 2013-08-23T11:10:58.873 回答