使用正则表达式在字符串中查找确切的字符

时间:2015-04-16 12:09:15

标签: c# regex

我有下面的字符串

M10 end 
start M11
M1
M1 start
M n1
end M1

我想要实现的是使用正则表达式只获得“ M1 ”的结果。

这是我目前的代码

Regex r = new Regex("^M1$|M1$");

输出如下所示,缺少字符串“M1 start”

M1
end M1

2 个答案:

答案 0 :(得分:5)

Regex r = new Regex("^.*\\bM1\\b.*$");

这应该适合你。参见demo.Here \b是单词边界,它只匹配M1而不是M10

  

\ b在单词边界处断言位置(^ \ w | \ w $ | \ W \ w | \ w \ W)

https://regex101.com/r/sJ9gM7/113

答案 1 :(得分:1)

好吧,如果你不想过度使用Regex,你可以使用

target="M1";
if( underTest.IndexOf(target) == 0 && underTest.Lenght == target.Lenght)
{
 ....
}

使用StringReader分割每一行。