string time = "Job started: donderdag 6 mei 2010 at 20:00:02"
var filterReg = new Regex(@".*:", RegexOptions.Compiled);
time = filterReg.Replace(time, String.Empty);
第一次出现后是否可以停止?所以在第一个“:”。
答案 0 :(得分:3)
您是否使用正则表达式来获取简单的子字符串?
time = time.Substring(time.IndexOf(":") + 1);
答案 1 :(得分:1)
使用更具体的正则表达式
new Regex(@"^[^:]*:", RegexOptions.Compiled);
您的.*:
执行此操作
.*
贪婪地匹配所有内容,因此它会一直运行到字符串的末尾。:
尝试匹配,因此正则表达式引擎一次返回一个字符(这称为回溯)以查找匹配项。它停在它找到的第一个冒号(从字符串的末尾看)而^[^:]*:
执行此操作:
^
将正则表达式锚定到字符串的开头。字符串中间不会出现匹配。[^:]*
匹配除了冒号之外的所有内容,贪婪,所以它直接运行到第一个冒号:
可以轻松匹配,因为下一个字符恰好是冒号。完成。不涉及回溯,这意味着它也更有效率。
答案 2 :(得分:0)
将此正则表达式.*?:
与Replace
overload一起使用:
string time = "Job started: donderdag 6 mei 2010 at 20:00:02"
var filterReg = new Regex(@".*?:", RegexOptions.Compiled);
filterReg.Replace(time, String.Empty, 1);