Регулярное выражение для сопоставления в строках - PullRequest
0 голосов
/ 17 ноября 2011

Что такое регулярное выражение для соответствия слову call или CALL в следующей строке в C #?

NIFTY-CALL-1200-Aug11
NIFTY CALL 1200 Aug11
NIFTYCALL-CALL-1200-Aug11 //In this case second call word must be matched not NIFTYCALL.
NIFTYCALL CALL 1200 Aug11 //In this case second call word must be matched not NIFTYCALL.
CALLNIFTY CALL 1200 Aug11 //In this case second call word must be matched not CALLNIFTY.
CALLNIFTY CALL 1200 Aug11 //In this case second call word must be matched not CALLNIFTY.
CALLNIFTY Aug11 1200CALL //In this case last call word must be matched not CALLNIFTY.
CALLNIFTY 1200 Aug11CALL //In this case last call word must be matched not CALLNIFTY.

Ответы [ 3 ]

2 голосов
/ 17 ноября 2011

А как же

Regex regexObj = new Regex(@"(?:\b|[0-9])(CALL)\b", RegexOptions.Singleline);
  • часть (?:<b|[0-9]) проверяет наличие границы слова или числа, предшествующего CALL

  • (CALL) находит строку и помещает ее в соответствующую группу

  • часть \b снова проверяет границы слова.

1 голос
/ 17 ноября 2011

Было бы

Regex re = new Regex(@"(\d|\b)(CALL|call)(\d|\b)");
0 голосов
/ 17 ноября 2011

Также можно использовать

Regex re = new Regex(@"(\d|\b)(CALL)(\d|\b)",RegexOptions.IgnoreCase);

вместо вызова CALL |.Таким образом, вы также подобрали бы «cAll» или «CALl».(Если нужно конечно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...