我正在尝试匹配& group(任何短语)## date ##(任何短语),但val1和val2为空。
Console.WriteLine("Subject: "+line);
Match match = Regex.Match(line, "(.)"+Regex.Escape("##date##")+"(.)", RegexOptions.IgnoreCase);
string val1 = match.Groups[1].Value;
string val2 = match.Groups[2].Value;
Console.WriteLine("Line#{0}: {1} Date: {2}", ++lineNo, val1, val2);
控制台:
Subject: http://www.website.com/url/is/masked.htm ##date## 3
Line#25: Date:
不是一个点应该匹配任何东西吗?
答案 0 :(得分:2)
Dot匹配单个符号,在您的示例中##date##
被两个空格包围。因此,您的小组数字为space
和space
,看起来像“没有”。
答案 1 :(得分:2)
A dot matches a single character other than a newline.在您的情况下,它与##date##
之前和之后的空格相匹配。请改用以下正则表达式:
Match match = Regex.Match(line, "(.*) ##date## (.*)", RegexOptions.IgnoreCase);
这匹配##date##
之前和之后的所有短语,不包括任何一方的单个空格。
输出: