Regex.IsMatch - 没有实现匹配

时间:2014-02-25 01:37:50

标签: c# regex

我有一个列表例如:

Type [data]
Device Type [data]
Pin type [data]

我正在尝试仅搜索类型[数据]而非设备类型或引脚类型。 请注意[数据]文本的更改取决于列表。

我目前的代码:

result = Regex.IsMatch(line1, "\\bType\\b");

我做错了什么?

4 个答案:

答案 0 :(得分:3)

使用克拉('^')匹配字符串的开头。

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

答案 1 :(得分:2)

如果您只需要在字符串的开头匹配Type,则根本不需要正则表达式:使用StartsWith的{​​{1}}方法,如下所示:

System.String

答案 2 :(得分:2)

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

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

如果最多只有一个匹配,并且保证在列表中的某个位置,您可以使用此:

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

答案 3 :(得分:1)

您的正则表达式\bType\b会在行的开头,行尾和之间查找Type的出现。

要匹配您提到的第一个案例,您可以使用此正则表达式:

result = Regex.IsMatch(line1, @"^Type\b");

现场演示:http://rubular.com/r/iEiDEhVt5g

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