我有一个包含多个“。”的字符串。在里面。我正在尝试捕获到最后一个“ << / LEFT> ”中的所有内容。我尝试了这种语法(因为我总是要捕获6个字符)
var result = filename.Substring(filename.LastIndexOf('.') - 6);
但是这将返回我想要的6个字符以及扩展名。文件名看起来像一个例子
The.Red.The.Blue.The.Green.Notification.Paper.R23B22.docx
代码段中的代码返回R23B22.docx
,我只想返回R23B22
如何更改此代码以返回所需的结果?
答案 0 :(得分:1)
只需使用String.Split()
:
var splits = filename.Split('.');
var result = splits.Length > 1 ? splits[splits.Length - 2] : "";
答案 1 :(得分:1)
答案 2 :(得分:1)
您忘记指定想要的字符数:
var result = filename.Substring(filename.LastIndexOf('.') - 6, 6);
答案 3 :(得分:0)
尝试一下:
var filename = "The.Red.The.Blue.The.Green.Notification.Paper.R23B22.docx";
var result = filename.Substring(filename.LastIndexOf('.')-6);
int index = result.IndexOf(".",StringComparison.InvariantCulture);
if (index > 0)
{
result = result.Substring(0, index); // result = R23B22
}
答案 4 :(得分:0)
另一个:
取出最后一块,然后除以.
,取出最后一块。
string output = filename.Substring(0, input.LastIndexOf(".")).Split('.').LastOrDefault();
或
string output = Path.GetFileNameWithoutExtension(filename).Split('.').LastOrDefault();