2010-01-08 131 views
6

我有一個字符串值,我需要中間出來,例如, 「取消付款人」/「新的無紙化」。拆分字符串值C#

這些都是字符串格式的例子:

「REF_SPHCPHJ0000057_Cancel Payer_20100105174151.pdf」
「REF_SPHCPHJ0000056_New Paperless_20100105174151.pdf」

+4

在我看來,這是拆分操作的第三個元素([2])?你調用'.Split('_')[2]'有什麼問題? – 2010-01-08 13:59:42

回答

16
string s = "REF_SPHCPHJ0000057_Cancel Payer_20100105174151.pdf"; 
string middleBit = s.Split('_')[2]; 
Console.WriteLine(middleBit); 

輸出是

Cancel Payer 
+6

+1那麼,正則表達式肯定是強大的,但是當一個好的舊分裂做的伎倆...... – 2010-01-08 14:09:27

5

這不是正則表達式的地方嗎?

Regex re = new Regex(@".*_(?<middle>\w+ \w+)_.*?"); 
string name = "REF_SPHCPHJ0000057_Cancel Payer_20100105174151.pdf"; 
string middle = re.Match(name).Groups["middle"].Value; 
+4

這似乎有點矯枉過正,簡單地分割一個字符串。 – 2010-01-08 14:15:19

+0

我尊重你的意見; ty你的評論 – 2010-01-08 14:46:02

0

我認爲這正則表達式:

Regex re = new Regex(@"\w+_\w+_(?<searched>.*)_\d*.pdf"); 

將滿足您的需求,如果PDF文件總是要你來爲

REF_<text>_<your text here>_<some date + id maybe>.pdf 
0

無法寫評論,但不得不說,傑森解決方案將無法正常工作的情況下,在「中間位」下劃線。它只會返回下劃線之前的部分。