2009-07-13 6 views
0

Я сейчас немного запутался с явно довольно простым регулярным выражением, но сегодня должно быть отсутствие кофеина или погода. В принципе, у меня есть строка, которая может быть чем-то вроде «sw» или «ee» или «n.a.».. Задача соответствия регулярного выражения .Net

Теперь, что я хочу & нужна regex.match, которая возвращает мне '', если предоставленная строка является «n.a.», во всех остальных случаях я хочу «_» (подчеркивание + исходное значение). Это возможно?

ответ

0

Следующие регулярные выражения будут только mstch строковыми значениями, отличными от 'n.a'.

^(?!n\.a).* 
0

Вы можете позвонить по телефону Regex.Replace и использовать делегат оценщика соответствия. В основном:

return Regex.replace ("sw | ee | n \ .a \.", Match => match.Value == "na"? String.Empty: String.Format ("_ {0}" , match.value));

+0

Возможно, вы захотите использовать «^ (?: sw | ee | n \ .a \.) $» В качестве соответствия, если у вас есть только это в данных. –

+0

Но я согласен со всеми, используйте оператор switch. –

0

Ваш вопрос может быть немного яснее, но, по существу регулярное выражение

(неприменимо) | ([а-г] +)

устанавливает две группы - первое совпадение 'неприменимо' и второе совпадение с одним или несколькими строчными буквами. Таким образом, вы можете сопоставить это регулярное выражение и посмотреть, не является ли первая или вторая группа непустой, - и добавьте «_», если вторая группа получит удар.

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