如何从字符串中删除 DateTime 子字符串
How to remove DateTime substring from string
我有一堆字符串,其中一些具有以下格式之一:
"TestA (3/12/10)"
"TestB (10/12/10)"
字符串的 DateTime
部分将始终采用 mm/dd/yy
格式。
我想要做的是删除包括括号在内的整个 DateTime 部分。如果它总是相同的长度,我将只得到 /
的索引,然后减去 (
之前的字符数。但是由于字符串的 mm
部分可能是一个或两个字符,我不能那样做。
那么有没有办法做一个 .Contains
或其他东西来查看字符串是否包含指定的 DateTime
格式?
为此使用正则表达式。我推荐:
\(\d{1,2}\/\d{1,2}\/\d{1,2}\)
查看 RegExr 是否有效。
正则表达式可用于此,例如:
string replace = "TestA (3/12/10) as well as TestB (10/12/10)";
string replaced = Regex.Replace(replace, "\(\d+/\d+/\d+\)", "");
您始终可以使用正则表达式来替换字符串
这是一个例子
var regEx = new Regex(@"\(\d{1,2}\/\d{1,2}\/\d{1,2}\)");
var text = regEx.Replace("TestA (3/12/10)", "");
如果您可以使用 Regex.Replace()
方法确保它们始终采用特定格式,则可以使用正则表达式去除可能的日期部分:
var updatedDate = Regex.Replace(yourDate,@"\(\d{1,2}\/\d{1,2}\/\d{1,2}\)","");
您可以 see a working example of it here,这会产生以下输出:
TestA (3/12/10) > TestA
TestB (10/12/10) > TestB
TestD (4/5/15) > TestC
TestD (4/6/15) > TestD
如果我的理解正确,您只想获取每个字符串的测试名称。将此代码复制到按钮单击事件。
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();
我有一堆字符串,其中一些具有以下格式之一:
"TestA (3/12/10)"
"TestB (10/12/10)"
字符串的 DateTime
部分将始终采用 mm/dd/yy
格式。
我想要做的是删除包括括号在内的整个 DateTime 部分。如果它总是相同的长度,我将只得到 /
的索引,然后减去 (
之前的字符数。但是由于字符串的 mm
部分可能是一个或两个字符,我不能那样做。
那么有没有办法做一个 .Contains
或其他东西来查看字符串是否包含指定的 DateTime
格式?
为此使用正则表达式。我推荐:
\(\d{1,2}\/\d{1,2}\/\d{1,2}\)
查看 RegExr 是否有效。
正则表达式可用于此,例如:
string replace = "TestA (3/12/10) as well as TestB (10/12/10)";
string replaced = Regex.Replace(replace, "\(\d+/\d+/\d+\)", "");
您始终可以使用正则表达式来替换字符串
这是一个例子
var regEx = new Regex(@"\(\d{1,2}\/\d{1,2}\/\d{1,2}\)");
var text = regEx.Replace("TestA (3/12/10)", "");
如果您可以使用 Regex.Replace()
方法确保它们始终采用特定格式,则可以使用正则表达式去除可能的日期部分:
var updatedDate = Regex.Replace(yourDate,@"\(\d{1,2}\/\d{1,2}\/\d{1,2}\)","");
您可以 see a working example of it here,这会产生以下输出:
TestA (3/12/10) > TestA
TestB (10/12/10) > TestB
TestD (4/5/15) > TestC
TestD (4/6/15) > TestD
如果我的理解正确,您只想获取每个字符串的测试名称。将此代码复制到按钮单击事件。
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();