Я хочу написать Regex в C#, я пишу следующий код:Регулярное выражение в C#
Regex reg = new Regex("n>");
string str = "burn";
int x=0;
if(reg.IsMatch(str))
x++;
Но, всегда х равна нулю. кто-нибудь знает почему?
Спасибо, Рейчел
Я хочу написать Regex в C#, я пишу следующий код:Регулярное выражение в C#
Regex reg = new Regex("n>");
string str = "burn";
int x=0;
if(reg.IsMatch(str))
x++;
Но, всегда х равна нулю. кто-нибудь знает почему?
Спасибо, Рейчел
Но, всегда х равна нулю. кто-нибудь знает почему?
Поскольку регулярное выражение «n>» не соответствует строке «burn».
Вау, это на 100% верно. Удивительно. ;-) – Tomalak
Это был indulgant ответ. Я старался не быть слишком откровенным. : D – Jamiec
Но это также не совсем ответ. Каждый вопрос «Почему это не работает?» на него можно ответить: «Потому что вы делаете это неправильно»; но никакая проблема не может быть * решена * таким образом. ;-) – Tomalak
Вы имеете в виду границу слова по >
, но они выражаются \b
в .NET регулярное выражение:
Regex reg = new Regex("n\\b"); // alternatively: Regex(@"n\b");
Какая нотация регулярных выражений '' '? – splash
@splash: Некоторые двигатели, такие как в vi/vim, используют заостренные скобки для обозначения границ слов. Это более выразительно, чем '\ b', потому что вы можете различать начало слова' <'и end-of-word'> '. – Tomalak
@Tomalak: Спасибо за информацию! – splash
Вы смотрите на ту часть помощи. Эта помощь предназначена для диалоговых окон поиска и замены Visual Studio. Некоторые из синтаксиса из справки недействительны для использования в C# (или, скорее, не имеют такого же эффекта). Так что если у вас слово «записать» в вашем коде, и вы вошли в n>
находят коробку и попытался поиска вы нашли п ожогу - видеть картину:
Вы, вероятно, нужно использовать n\b
как отметил Томалак.
Смотреть подробнее из MSDN: Regular Expression Language Elements
Хорошо, но что заменяет «<», которое использует, чтобы соответствовать только тогда, когда слово начинается с этой точки? – Rachel
\ b, но вы должны использовать \ bb для записи - это проверит, является ли b началом слова. Что-то вроде: Regex reg = new Regex (@ "n \ b"); string str = "burn"; int x = 0; если (рег.IsMatch (str)) x ++; Regex reg2 = новое Regex (@ "\ bb"); if (reg2.IsMatch (str)) x ++; – Mihailo
См ответ ниже, но вы можете сказать нам, что вы пытаетесь соответствовать? может быть, «n» в конце строки? – Jamiec