正则表达式与字符串C#不匹配

时间:2019-04-04 06:53:45

标签: c# regex

string val = "VFC - [C:\study\Run20315.5000]"
string pattern = "VFC - *C:\\study\\Rund.*"

我写了下面的表达式,但是它变得错误了。

bool Match= Regex.IsMatch(val, pattern)

1 个答案:

答案 0 :(得分:4)

您忘记了方括号,如果您计划匹配一个数字,则d之前的反斜杠会丢失,并且反斜杠必须加倍-或更佳-使用逐字字符串。另外,请注意,*是一个量化符,它会使前面的模式匹配0次或多次。如果需要在两个模式之间匹配任意文本,请使用.*.*?,如果可能会有换行符,请使用RegexOptions.Singleline编译模式:

string pattern = @"VFC - .*C:\\study\\Run\d";
bool Match= Regex.IsMatch(val, pattern, RegexOptions.Singleline);

请参见.NET regex demoRegulex graph

enter image description here

详细信息

  • VFC - -文字VFC - 子字符串
  • .*-尽可能多的零个或多个字符
  • C:\\study\\Run-一个C:\study\Run子字符串
  • \d-一个数字。