2015-04-16 1 views
4

У меня есть строки, как нижеНайти точные символы в строку, используя регулярное выражение

M10 end 
start M11 
M1 
M1 start 
M n1 
end M1 

То, что я пытаюсь достичь получить результат, имеющий только «M1» с помощью регулярных выражений.

Это мой текущий код

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

Результат выглядит ниже которого отсутствует строка "M1" старт

M1 
end M1 
+0

Вы хотите, чтобы он соответствовал «началу M1 end»? – ClickRick

ответ

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

Это должно сделать это для you.See demo.Here \b - граница слова, которая будет соответствовать только M1, а не M10.

\ б позиции Assert на границе слова (^ \ ш | \ ш $ | \ W \ ш | \ ш \ W)

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

1

Ну, если вы хотите не в чрезмерном Regex, вы можете использовать

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

используя StringReader разделить каждую строку.

Смежные вопросы