我有下面的字符串
M10 end
start M11
M1
M1 start
M n1
end M1
我想要实现的是使用正则表达式只获得“ M1 ”的结果。
这是我目前的代码
Regex r = new Regex("^M1$|M1$");
输出如下所示,缺少字符串“M1 start”
M1
end M1
答案 0 :(得分:5)
Regex r = new Regex("^.*\\bM1\\b.*$");
这应该适合你。参见demo.Here \b
是单词边界,它只匹配M1
而不是M10
。
\ b在单词边界处断言位置(^ \ w | \ w $ | \ W \ w | \ w \ W)
答案 1 :(得分:1)
好吧,如果你不想过度使用Regex,你可以使用
target="M1";
if( underTest.IndexOf(target) == 0 && underTest.Lenght == target.Lenght)
{
....
}
使用StringReader
分割每一行。