2012-03-24 72 views
0

我知道它對你來說可能相當容易。
我有一個包含40行的文本,我想刪除以恆定文本開頭的行。
請檢查以下數據。正則表達式去除以某些文本開頭的行

當我使用(?mn)[\+CMGL:].*($)它刪除整個文本,當我使用(?mn)[\+CMGL:].*(\r)時,它只留下第一行。

+CMGL: 0,1,,159 
07910201956905F0440B910201532762F20008709021225282808 
+CMGL: 1,1,,159 
07910201956905F0240B910201915589F7000860013222244480 
+CMGL: 2,1,,151 
07910201956905F0240B910201851177F6000850218122415 
+CMGL: 3,1,,159 
07910201956905F0440B910201532762F200087090311 
+CMGL: 4,1,,159 
07910221020020F0440B910221741514F40008802041120481808C050 

我想刪除所有以+ CMGL開頭的行,並且只保留其他行。

謝謝...

回答

3

爲什麼你需要這個正則表達式? String.StartsWith是爲此目的而創建的。

Dim result = lines.Where(Function(l) Not l.StartsWith("+CMGL")).ToList() 

編輯:如果沒有「線」,但其中包含新行字符的文本:如果您希望將其轉換回字符串

Dim result = text.Split({ControlChars.CrLf, ControlChars.Lf}, StringSplitOptions.None). 
        Where(Function(l) Not l.StartsWith("+CMGL")).ToList() 

Dim text = String.Join(Environment.NewLine, result) 
相關問題