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"));