如何从字符串中删除DateTime子字符串



我有一堆字符串,其中一些具有以下格式之一:

"TestA (3/12/10)"
"TestB (10/12/10)"

字符串的DateTime部分将始终采用mm/dd/yy格式。

我想做的是删除整个DateTime部分,包括括号。如果它总是相同的长度,我只需要得到/的索引,并将其减去直到并包括(的字符数。但是由于字符串的mm部分可能是一个或两个字符,所以我不能这样做。

那么,有没有办法做一个.Contains或其他什么来查看字符串是否包含指定的DateTime格式?

如果可以使用Regex.Replace()方法确保可能的日期部分始终为特定格式,则可以使用正则表达式来去掉这些日期部分:

var updatedDate = Regex.Replace(yourDate,@"(d{1,2}/d{1,2}/d{1,2})","");

您可以在这里看到它的一个工作示例,它产生以下输出:

TestA (3/12/10)  > TestA
TestB (10/12/10) > TestB
TestD (4/5/15)   > TestC
TestD (4/6/15)   > TestD

您可以始终使用正则表达式来替换字符串

以下是的示例

var regEx = new Regex(@"(d{1,2}/d{1,2}/d{1,2})");
var text = regEx.Replace("TestA (3/12/10)", "");

为此使用RegEx。我推荐:

(d{1,2}/d{1,2}/d{1,2})

请参阅RegExr以了解其工作原理。

Regex可以用于此,例如:

string replace = "TestA (3/12/10) as well as TestB (10/12/10)";
string replaced = Regex.Replace(replace, "\(\d+/\d+/\d+\)", "");

如果我理解正确,您只需要获取每个字符串的测试名称。将此代码复制到按钮单击事件。

string Old_Date = "Test SomeName(3/12/10)";
string No_Date = "";
int Date_Pos = 0;
Date_Pos = Old_Date.IndexOf("(");
No_Date = Old_Date.Remove(Date_Pos).Trim();
MessageBox.Show(No_Date, "Your Updated String", MessageBoxButton.OK);

将其总结为一行代码

No_Date = Old_Date.Remove(Old_Date.IndexOf("(")).Trim();

最新更新