C# Regex.IsMatch-未实现匹配

C# Regex.IsMatch-未实现匹配,c#,regex,C#,Regex,我有一个清单,例如: Type [data] Device Type [data] Pin type [data] 我试图只搜索类型[数据],而不是设备类型或Pin类型。 请注意[数据]文本的变化取决于列表 我当前的代码: result = Regex.IsMatch(line1, "\\bType\\b"); 我做错了什么?使用克拉(“^”)匹配字符串的开头 Regex.IsMatch(line1, @"^Type (.*)$"); 您的正则表达式\b Type\b将在行首、行尾和单词之

我有一个清单,例如:

Type [data]
Device Type [data]
Pin type [data]
我试图只搜索类型[数据],而不是设备类型或Pin类型。 请注意[数据]文本的变化取决于列表

我当前的代码:

result = Regex.IsMatch(line1, "\\bType\\b");
我做错了什么?

使用克拉(“^”)匹配字符串的开头

Regex.IsMatch(line1, @"^Type (.*)$");

您的正则表达式
\b Type\b
将在行首、行尾和单词之间查找
Type
的出现

要匹配您提到的第一种情况,可以使用以下正则表达式:

result = Regex.IsMatch(line1, @"^Type\b");
现场演示:


使用
^
查看行的开头。这样,单词之间或末尾出现的
Type
都不会产生匹配。

如果只需要在字符串开头匹配
Type
,则根本不需要正则表达式:使用
System.string
StartsWith
方法,如下所示:

if (line1.StartWith("Type ")) {
    ...
}

你说你有一个清单,但没有什么清单。假设它是一个字符串列表,您可以使用LINQ查找所有以“Type”开头的字符串:

var matches = data.Where(x => x.StartsWith("Type"));
如果最多有一个匹配项,并且保证在列表中的某个位置,则可以使用以下选项:

var matches = data.Single(x => x.StartsWith("Type"));