2

次のようなテキストを含む投稿を含む、多くの古い phpBB データを含むデータベースがあります。

[b:522f1e2c15]bold[/b:522f1e2c15]
[i:522f1e2c15]italic[/i:522f1e2c15]
[u:522f1e2c15]underline[/u:522f1e2c15]
[img:522f1e2c15]http://www.mysite.com/myimage.jpg[/img:522f1e2c15]
[quote:522f1e2c15="Mark"]quoted text by Mark[/quote:522f1e2c15]

このデータを新しいシステムに移行する必要がありますが、プロセスの一部として、さまざまなタグ内に表示される一意の ID を置き換える必要があるため、上記は次のようになります。

[b]bold[/b]
[i]italic[/i]
[u]underline[/u]
[img]http://www.mysite.com/myimage.jpg[/img]
[quote=Mark]quoted text by Mark[/quote]

SQL RegExの第一人者がこれを行う方法を示してくれることを願っていますか?

4

1 に答える 1

2

可能な解決策のほんの一部です。正規表現を使用してグループを照合し、一意の ID グループを除外します。

string pattern = @"(\[b)(:\w+)(\]\w+\[\/b)(:\w+)(\])";
string input = "[b:522f1e2c15]bold[/b:522f1e2c15]";
Match m = Regex.Match(input,pattern);
Console.WriteLine("{0}{1}{2}", m.Groups[1].Value, m.Groups[3].Value, m.Groups[5].Value);
于 2012-06-14T13:29:56.617 に答える