正则表达式组不起作用

本文关键字:不起作用 正则表达式 | 更新日期: 2023-09-27 18:30:35

>我正在尝试匹配和分组(任何短语)##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: 

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

正则表达式组不起作用

点匹配换行符以外的单个字符。在您的情况下,它匹配##date##之前和之后的空间。请改用以下正则表达式:

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

这匹配了##date##前后的整个短语,不包括两侧的单个空格。

输出:

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

点匹配单个符号,在您的示例中##date##被两个空格包围。因此,您的小组数学是spacespace的,看起来像"什么都没有"。