我有一個.NET正則表達式,我用於替換,我想更新它。正則表達式去除替換字符
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>[^\"]*)[\"|<">]})
哪一個匹配,但是返回<a target=\"_blank\" href="\quot;http://www.google.com"\">quot;Link 2"</a>
。
對於我的生活,我無法弄清楚如何不包括"
在返回的<name>
和<url>
值。
很不錯的。 +1的在線正則表達式測試器給出了很好的詳細解釋。 – Reuben
唯一需要注意的是.NET以不同的方式處理編號的後向引用。它會首先計算未命名的引用,然後命名引用,所以\ 2實際上需要是\ 1。 – Reuben
@Reuben不客氣!是的,我發現regex101真棒:)哦,我不知道。謝謝,我會牢記在心:) – Jerry