我有一個字符串值,我需要中間出來,例如, 「取消付款人」/「新的無紙化」。拆分字符串值C#
這些都是字符串格式的例子:
「REF_SPHCPHJ0000057_Cancel Payer_20100105174151.pdf」
「REF_SPHCPHJ0000056_New Paperless_20100105174151.pdf」
我有一個字符串值,我需要中間出來,例如, 「取消付款人」/「新的無紙化」。拆分字符串值C#
這些都是字符串格式的例子:
「REF_SPHCPHJ0000057_Cancel Payer_20100105174151.pdf」
「REF_SPHCPHJ0000056_New Paperless_20100105174151.pdf」
string s = "REF_SPHCPHJ0000057_Cancel Payer_20100105174151.pdf";
string middleBit = s.Split('_')[2];
Console.WriteLine(middleBit);
輸出是
Cancel Payer
+1那麼,正則表達式肯定是強大的,但是當一個好的舊分裂做的伎倆...... – 2010-01-08 14:09:27
這不是正則表達式的地方嗎?
Regex re = new Regex(@".*_(?<middle>\w+ \w+)_.*?");
string name = "REF_SPHCPHJ0000057_Cancel Payer_20100105174151.pdf";
string middle = re.Match(name).Groups["middle"].Value;
這似乎有點矯枉過正,簡單地分割一個字符串。 – 2010-01-08 14:15:19
我尊重你的意見; ty你的評論 – 2010-01-08 14:46:02
我認爲這正則表達式:
Regex re = new Regex(@"\w+_\w+_(?<searched>.*)_\d*.pdf");
將滿足您的需求,如果PDF文件總是要你來爲
REF_<text>_<your text here>_<some date + id maybe>.pdf
無法寫評論,但不得不說,傑森解決方案將無法正常工作的情況下,在「中間位」下劃線。它只會返回下劃線之前的部分。
在我看來,這是拆分操作的第三個元素([2])?你調用'.Split('_')[2]'有什麼問題? – 2010-01-08 13:59:42