2012-10-02 29 views
0

我在VB.NET中遇到了一些正則表達式的問題。VB.NET用正則表達式替換字符串

我有這樣一個字符串:"[Type=User][User=Hello]Thats the message"

我想有"Thats the message"的一部分,所以我認爲最好的辦法這是更換"[Type=User][User=Hello]"""

注:

  • "Thats the message"總是在字符串的末尾,它可以是""(沒有字符)。

  • [Type=XXXX]可以是任何東西,我的意思是,它可以[Type=Password][Type=Message] ...

所以,這裏是我做過什麼:

Dim regOptions As RegexOptions = RegexOptions.IgnoreCase Or RegexOptions.Singleline 
Regex.Replace(buffer, "^(.*)[^\]]*$", "", regOptions) 

它不工作,字符串'buffer'沒有被修改。

+0

切切實實的,你可以使用'String.Split'爲此,使用']'作爲分隔符? – Oded

回答

3

根據the documentation of that overload它將返回結果字符串(畢竟,在.net字符串是不可變的)。

所以,相反,嘗試:

buffer = Regex.Replace(buffer, "^(.*)[^\]]*$", "", regOptions) 
+0

沒錯。另外,我不認爲這種模式會起作用。爲什麼不只是'\ [。* \]'? – sloth

+1

更好的模式可能是'\ [([^ \]] +)\]',但替換沒有做任何事情的原因是結果從未被讀過...... –