我正在處理一個C#類來解析BBCodes從數據庫中爲PHPBB帖子拉出的文本。 在PHPBB有一個自定義的BBCode添加看起來像這樣:用C#解析多行BBCode正則表達式
[deck={TEXT1}]{TEXT2}[/deck]
其中,坐在數據庫,看起來是這樣的:
[deck=FirstText:13giljne]Large Multiline Text[/deck:13giljne]
我試圖替換使用正則表達式在C#中。 我的C#是這樣的:
string text = "[deck=FirstText:13giljne]Large Multiline Text[/deck:13giljne]";
string replace = "my replacement string";
string pattern = @"\[deck=((.|\n)*?)(?:\s*)\]((.|\n)*?)\[/deck(?:\s*)\]";
RegexOptions options = RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(text, replace);
我敢肯定,這一切僅僅歸結到我的正則表達式是錯誤的。這對我來說並不令人意外,因爲Regex並不完全是我的強項。
在此先感謝。任何幫助是極大的讚賞。
編輯:由於有些人發現它不清楚,我會添加更大的例子。
源文:
[deck=Bant:13giljne]Item #1
Item #2
Item #3
Item #4[/deck:13giljne]
期望的結果:
<span>Bant</span>
<div>Item #1
Item #2
Item #3
Item #4</div>
希望這給出了什麼,我試圖做一個更清晰的畫面。
如果你能否詳細說明多一點......「我試圖取代,在C#中使用正則表達式」,試圖用什麼來代替呢? – m0skit0
@ m0skit0我試圖讓正則表達式匹配被稱爲「text」的變量中的字符串,並將其替換爲名爲「replace」的變量中的字符串。 – Wayne
但是,不是全部的字符串?爲什麼不使用*替換*而不是*文本*?我不明白你的問題... – m0skit0