• ベストアンサー

VB2008 正規表現でHTMLタグを"大文字→小文字"に置換したい

Visual Basic 2008使用のプログラミング初心者です。 HTMLタグを大文字から小文字に置換するアプリケーションを作成中なのですが記述が間違っているのか、文字列を置換することが出来ません。 以下ソースです。     TextBox1.Text = Regex.Replace(TextBox1.Text, _       "<([\/]?)([\w]+)", _       "$1\L$2") http://dobon.net/vb/dotnet/string/regexreplace.html http://www37.atwiki.jp/emeditor/pages/50.html#id_6996d4b6 この二つのサイトを参考にやってみたのですが 置換を実行すると <BR> → \LBR> こうなってしまいます。 小文字に置換されるようにするにはどこを直せばよいのでしょうか。 教えてください、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.2

Private Function RegexMatchEvaluator(ByVal MATCH As Match) As String Return MATCH.Value.ToLower End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim s As String = "<BR>" s = Regex.Replace(s, _ "([\/]?)([\w]+)", _ AddressOf RegexMatchEvaluator) Console.WriteLine(s) End Sub こんな感じです。 正規表現を使わずに TextBox1.Text = TextBox1.Text.ToLower でも結果は同じですよ。

その他の回答 (1)

  • KG_
  • ベストアンサー率62% (34/54)
回答No.1

2番目のサイトはEmEditerの正規表現ですので、特殊なものなのでしょう。 (テキストエディタには独自の正規表現を含むものが多々あります。) RegexクラスのMatchesメソッドを使用して個別にString.ToLowerメソッドで 対応すれば可能ではないでしょうか。

u_keyyy_2006
質問者

お礼

ご回答ありがとうございます。 "\L"という表現はEmEditer独自のものなんですね。知りませんでした。 ToLowerはタグ以外の大文字も小文字になってしまうのでしょうか。 "<"か"</"で始まるタグだけを小文字にするにはどうしたらよいですか?

関連するQ&A