正则表达式组无法正常工作

时间:2012-04-07 23:32:54

标签: c# regex

我正在尝试匹配& 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: 

不是一个点应该匹配任何东西吗?

2 个答案:

答案 0 :(得分:2)

Dot匹配单个符号,在您的示例中##date##被两个空格包围。因此,您的小组数字为spacespace,看起来像“没有”。

答案 1 :(得分:2)

A dot matches a single character other than a newline.在您的情况下,它与##date##之前和之后的空格相匹配。请改用以下正则表达式:

Match match = Regex.Match(line, "(.*) ##date## (.*)", RegexOptions.IgnoreCase);

这匹配##date##之前和之后的所有短语,不包括任何一方的单个空格。

输出:

  

第25行:http://www.website.com/url/is/masked.htm日期:3