正規表現で置換ができない

タグの編集
投稿者 xvmmtnk  (中学生) 投稿日時 2011/11/21 17:51:57
です。

Regex.Replace()
を使って、文字の置換をすることが出来ません。
どうすれば、できるようになりますか?

 TextBox1.Text = System.Text.RegularExpressions.Regex.Replace(Label4.Text, ",.*")


エラーは、
「非共有メンバーを参照するには、オブジェクト参照が必要です。」

別のコード
 While sr.Peek() > -1
            Dim rs As String = sr.ReadLine()
            If rs.Contains("Structure.Load("Then
                rs = System.Text.RegularExpressions.Regex.Replace(rs, "\s*Structure\.Load\(""")
                rs = System.Text.RegularExpressions.Regex.Replace(rs, "\)\;""")
                rs = map.Replace(Path.GetFileName(map), rs)
                bve_structure = rs
            End If
        End While

は実行できます。
投稿者 YuO  (社会人) 投稿日時 2011/11/21 18:11:00
上はReplaceの引数が2つ,下は引数が3つですよね。
Replaceに正規表現を与える形式では,その正規表現にマッチした物をどう変換するかを記述する必要があるため,引数が3つ必要になります。

MSDN: http://msdn.microsoft.com/ja-jp/library/e7f5w83z(v=VS.90).aspx
http://msdn.microsoft.com/ja-jp/library/e7f5w83z(v=VS.90).aspx


Replaceの引数が2つのものは,Regexクラスのインスタンスを作成して使うための物です。
Regexのインスタンスが正規表現を既に保持しているため,1個引数が不要になります。

MSDN: Replace メソッド (String, String)
http://msdn.microsoft.com/ja-jp/library/xwewhkd1(v=VS.90).aspx