在C#中分割字符串值

6

我有一个字符串值,需要从中获取中间部分,例如“Cancel Payer” / “New Paperless”。

以下是字符串格式的示例:

"REF_SPHCPHJ0000057_Cancel Payer_20100105174151.pdf"
"REF_SPHCPHJ0000056_New Paperless_20100105174151.pdf"


4
你觉得是分割操作的第三个元素([2])?你在调用.Split('_')[2]时遇到了什么问题? - Noon Silk
3个回答

16

使用:

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

输出结果为

Cancel Payer

如果“中间部分”中有下划线,Jason的解决方案将无法正确工作。它只会返回下划线之前的部分。 - Igor Jerosimić

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
似乎为了简单地拆分字符串而采取这样的方式有点过度。 - George Johnston

0

我认为正则表达式

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

如果PDF文件总是以以下方式呈现给您:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接