我正在尝试在.net c#中创建2个正则表达式。
样品:
/TEXT;dd-mm-yyyy;TEXT/TEXT;dd-mm-yyyy;TEXT/TEXT;dd-mm-yyyy;TEXT
或者
/TEXT;dd-mm-yyyy;TEXT
至少应输入一次。 中间部分:dd-mm-yyyy应该是像20-02-1997那样的日月 在TEXT中,不应该有任何/否则我接受正则表达式会失败。
我尝试过:
string test = "/TEXT;dd-mm-yyyy;TEXT/TEXT;dd-mm-yyyy;TEXT/TEXT;dd-mm-yyyy;TEXT";
string reguexp = "[\\/(\\w+;\\w+;\\w+)+]";
foreach (System.Text.RegularExpressions.Match match in System.Text.RegularExpressions.Regex.Matches(test, reguexp))
{
Console.WriteLine("'{0}' found at index {1}.", match.Value, match.Index);
}
但是无法检测每个字符作为匹配项,我想逐个提取“组”/TEXT;dd-mm-yyyy;TEXT
以便稍后进行任何额外的数据处理。
我试着从第二个正则表达式开始,认为一旦我有了这个正则表达式,另一个应该更容易。
接受任何帮助。 最好的问候
答案 0 :(得分:-1)
您应该使用群组:
var strRegex = @"(?<date>\d{2}-\d{2}-\d{4})+";
var myRegex = new Regex(strRegex, RegexOptions.None);
var strTargetString = @"01-02-2000;15-03-2018";
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
var dateString = myMatch.Groups["date"].Value;
// TODO: Check dateString is valid date (e.g. with DateTime.TryParseExact(...))
}