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

4
我有以下类似的字符串
M10 end 
start M11
M1
M1 start
M n1
end M1

我希望通过正则表达式仅获取“M1”的结果。
这是我的当前代码。
Regex r = new Regex("^M1$|M1$");

输出结果如下,缺少字符串"M1 start"。
M1
end M1

你是否希望它也匹配“start M1 end”? - ClickRick
2个回答

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

这应该可以解决您的问题。查看演示。这里的\b是一个单词边界,它只匹配M1而不匹配M10\b断言位置在单词边界处(^ \ w | \ w $ | \ W \ w | \ w \ W) https://regex101.com/r/sJ9gM7/113

1

如果你不想过度使用正则表达式,可以使用

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

使用 StringReader 对每一行进行分割。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接