簡體   English   中英

RegEx替換查詢以選擇Wiki語法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM