I need regex to find this text
[#URL ^ Url说明^#]
在一个字符串中,并用
替换它
<a href="some link">Url Description</a>
“Url Description”可以是任何语言的字符集。
任何正则表达专家在那里帮助我?
感谢。
答案 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>");