我有一个用于替换的 .NET Regex,我想更新它。
string rxp = "(?<link>{link name=\"(?<name>[^\"]*)\" url=\"(?<url>[^\"]*)\"})";
input = Regex.Replace(input, rxp, "<a target=\"_blank\" href=\"$3\">$2</a>", RegexOptions.IgnoreCase);
此正则表达式将成功捕获{link name="Link 2" url="http://www.google.com"}
并将其转换为<a target=\"_blank\" href="\http://www.google.com\">Link 2</a>
.
但是,我想处理引号可能以"
. 即{link name="Link 2" url="http://www.google.com"}
,但我仍然希望它在原始输出中呈现。
目前,我有(?<link>{link name=[\"|<">](?<name>[^\"]*)[\"|<">] url=[\"|<">](?<url>[^\"]*)[\"|<">]})
which 匹配,但返回<a target=\"_blank\" href="\quot;http://www.google.com"\">quot;Link 2"</a>
.
对于我的一生,我无法弄清楚如何不包含"
在返回的<name>
and<url>
值中。