Как сопоставить набор строк в регулярном выражении - PullRequest
0 голосов
/ 22 августа 2011

Как эффективно объединить ch..+ и ch..- в регулярном выражении без необходимости отдельного сканирования? И мы используем matcher в шаблоне?

Мой выходной код выглядит так:

ch01+
ch01-
ch02+
ch02-
...

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Вы можете использовать класс символов , содержащий только "+" и "-", например "[+-]".

Pattern p = Pattern.compile("ch..[+-]");
Matcher m = p.matcher("ch01+");
if (m.find()) {
  // found it...
2 голосов
/ 22 августа 2011

Как эффективно объединить ch..+ и ch..- в регулярном выражении без необходимости отдельного сканирования?

Используйте | (труба) для чередования :

ch..(\+|-)

И мы используем matcher в шаблоне?

Зависит от того, как вы используете регулярное выражение и шаблон. Чтобы получить конкретный ответ, вам нужно будет показать какой-то реальный код или задать намного более конкретный вопрос.


NB Если вы хотите ограничить два символа после ch до 0-9, вы можете использовать \d, который является сокращенным классом символов для [0-9] :

ch\d{2}(\+|-)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...