2010-11-25 88 views
4

我需要使用c#RegEx來處理字符串。這個想法是刪除首字母大寫字母,就像一個子字符串。正則表達式C#

示例string:=「04 | aH 800 A574a C.R.」;

結果應該是「H 800 A574a C.R.」。

但靠山是可變的,因爲該字符串可以是「4個| aProtestas POPULARES」,其結果應該是「Protestas POPULARES」

彙總,我需要的子後「| X」忽略的是前這個表達。

謝謝...

PD:我的英語很抱歉:S

+0

Quénote preocupes,tío。 – tchrist 2010-11-26 01:07:05

回答

4
var stringNew = Regex.Replace(stringOld, @"^.*?\|.", ""); 

這消除一切

  • 在字符串^
  • 含有任何.*?
  • 開始
  • 以管道結尾|
  • 加上如下.
+0

您應該可以使`。*`懶惰,以防在稍後有其他管道出現。 – Jens 2010-11-26 07:35:54

2

如果字符串始終具有管和後一個字符任意一個字符,然後你想保留什麼,你可以只使用String.IndexOf()。使用一個字符串方法會比使用RegEx對象快得多。

string str = "04|aH 800 A574a C.R."; 
int nIndex = str.IndexOf('|') + 2; 
string substr = str.Substring(nIndex); // contains "H 800 A574a C.R." 
0

這個表達式給你想要的結果: 「| X」

(\|)[a-zA-Z](?<wanted>[\s\S]+)$ 

組名爲 '希望' 後給出。