[英]RegEx replace query to pick out wiki syntax
我有一個HTML字符串,我需要從例如HTML中獲取“ [Title | http://www.test.com] ”模式
“ dafasdfasdf,adfasd。[測試| http://www.test.com/] adf ddasfasdf [SDAF | http://www.madee.com/] assg廣告”
我需要將“ [Title | http://www.test.com] ”替換為“ http://www.test.com/'>Title”。
解決這個問題的最佳途徑是什么?
我越來越接近:
string test = "dafasdfasdf adfasd [Test|http://www.test.com/] adf ddasfasdf [SDAF|http://www.madee.com/] assg ad ";
string p18 = @"(\[.*?|.*?\])";
MatchCollection mc18 = Regex.Matches(test, p18, RegexOptions.Singleline | RegexOptions.IgnoreCase);
foreach (Match m in mc18)
{
string value = m.Groups[1].Value;
string fulltag = value.Substring(value.IndexOf("["), value.Length - value.IndexOf("["));
Console.WriteLine("text=" + fulltag);
}
必須有一種更干凈的方法來獲取兩個值,例如“ Title”位和url本身。
有什么建議么?
替換模式:
\[([^|]+)\|[^]]*]
有:
$1
簡短說明:
\[ # match the character '['
( # start capture group 1
[^|]+ # match any character except '|' and repeat it one or more times
) # end capture group 1
\| # match the character '|'
[^]]* # match any character except ']' and repeat it zero or more times
] # match the character ']'
AC#演示看起來像:
string test = "dafasdfasdf adfasd [Test|http://www.test.com/] adf ddasfasdf [SDAF|http://www.madee.com/] assg ad ";
string adjusted = Regex.Replace(test, @"\[([^|]+)\|[^]]*]", "$1");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.