C# 把所有东西都带到最后一个“左边”&引用;串
我有一个字符串,其中有多个“.”。我正在尝试捕获最后一个“左侧的所有内容”。我尝试了这种语法(因为我要捕获的字符总是6个) 但这将返回我想要的6个字符以及扩展名。文件名的示例如下C# 把所有东西都带到最后一个“左边”&引用;串,c#,regex,C#,Regex,我有一个字符串,其中有多个“.”。我正在尝试捕获最后一个“左侧的所有内容”。我尝试了这种语法(因为我要捕获的字符总是6个) 但这将返回我想要的6个字符以及扩展名。文件名的示例如下 The.Red.The.Blue.The.Green.Notification.Paper.R23B22.docx 在我的代码片段中,代码返回R23B22.docx我只想返回R23B22 如何更改此代码以返回所需结果?只需使用String.Split(): 只需使用String.Split(): 你可以用 /([^.
The.Red.The.Blue.The.Green.Notification.Paper.R23B22.docx
在我的代码片段中,代码返回R23B22.docx
我只想返回R23B22
如何更改此代码以返回所需结果?只需使用
String.Split()
:
只需使用
String.Split()
:
你可以用
/([^.]+)\.[^.]+$/
您可以使用
/([^.]+)\.[^.]+$/
您忘记指定需要多少字符:
var result = filename.Substring(filename.LastIndexOf('.') - 6, 6);
演示:您忘记指定需要的字符数:
var result = filename.Substring(filename.LastIndexOf('.') - 6, 6);
演示:试试这个:
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
}
试试这个:
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
}
另一个:移除最后一块,然后按
分割,然后取出最后一块。string output = filename.Substring(0, input.LastIndexOf(".")).Split('.').LastOrDefault();
或
另一个:移除最后一块,然后按
分割,然后取出最后一块。string output = filename.Substring(0, input.LastIndexOf(".")).Split('.').LastOrDefault();
或
就是这样!使用
String.Split()
而不是Substring()
是个人的偏好,还是这只是使用C#做的“更好”的事情?这对我来说很自然@Mitchmahoneyth做到了!使用String.Split()
而不是Substring()
是个人的偏好,还是这只是使用C#做的“更好”的事情?我觉得这很自然@MitchMahoney