C# 拆分字符串直到出现特定字符
如何解析上述字符串值以删除时间字符串。输入值可以使用格式C# 拆分字符串直到出现特定字符,c#,C#,如何解析上述字符串值以删除时间字符串。输入值可以使用格式1hr projectA或1.25hr projectA,输出为projectA string projectname= "1.25hr projectA"; 在这一行中,输出为1.25h projectname = projectname.Substring(0, projectname.IndexOf('r')).Trim(); 您可以使用一个简单的正则表达式来解析文本:regex.Replace(rawValue,@“^[\d|
1hr projectA
或1.25hr projectA
,输出为projectA
string projectname= "1.25hr projectA";
在这一行中,输出为1.25h
projectname = projectname.Substring(0, projectname.IndexOf('r')).Trim();
您可以使用一个简单的正则表达式来解析文本:
regex.Replace(rawValue,@“^[\d|.| hr]+”,“”)。Trim()
你的问题很模糊。如果要删除“1.25小时”
等发生率:
[Theory]
[InlineData("1.25hr projectA")]
[InlineData("1hr projectA")]
[InlineData("projectA")]
public void Can_parse_project_name(string rawValue)
{
var projectName= Regex.Replace(rawValue, @"^[\d|.|hr]+", "").Trim();
projectName.Should().Be("projectA");
}
如果您想修剪并包括最后一个“hr”
使用
projectname=projectname.Split().Last()代码>问题是什么?我需要从“1.25小时项目A”中删除字符串1.25小时。谢谢。它将给出类似hr projectA的结果。我还需要删除hr.projectname=Regex.Replace(projectname,@“^[hr\d|.| hr|]+”,“”)。Trim();我得到了预期的输出,谢谢。@Logeswari Jegatheesan欢迎您。请选择其中一个答案作为您选择的答案。谢谢。但对于我的示例,它将返回空值您的示例
,我在这两种情况下都得到了projectA
。
[Theory]
[InlineData("1.25hr projectA")]
[InlineData("1hr projectA")]
[InlineData("projectA")]
public void Can_parse_project_name(string rawValue)
{
var projectName= Regex.Replace(rawValue, @"^[\d|.|hr]+", "").Trim();
projectName.Should().Be("projectA");
}
string source = "my 1.45hr and 5.31hr test project";
// "my and test project"
string result = Regex.Replace(source, @"[0-9.]+hr\s+", "");
// "test project"
string result = Regex.Match(source,
@"[0-9.]+hr\s+(.+?)$",
RegexOptions.RightToLeft).Groups[1].Value;