@Justperfect

Как правильно задать regex для pattern?

Друзья, прошу вашей помощи. Пишу программу, которая формирует список дел через консоль с помощью команд.

Мне нужно научить программу по разному реагировать на два шаблона ввода:
Первый: "ADD + Текст" (где "ADD" - название команды, "Текст" - текст). Например: ADD Дело 4
Второй: "ADD + № + Текст" (где "ADD" - название команды, "№" - порядковый номер, который должен быть присвоен делу, "Текст" - текст). Например: ADD 4 Четвертое дело

Разделение этих шаблонов я планирую реализовать это с помощью Pattern - Matcher. Но никак не получается правильно задать условие для Patterna.

Сейчас использую следующие регулярные выражения:
Для первого: Pattern patternAdd = Pattern.compile ("ADD + \\s + [а-яА-Я0-9]");
Для второго: Pattern patternAddX = Pattern.compile("ADD + \\s[0-9] + [а-яА-Я0-9]");

В том числе пробовал их различные вариации, но безуспешно... Может вы подскажете как правильно написать regex? Заранее спасибо!
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
@berng
Попробуйте так:
Варианты строк:
$a="ADD sfdsf"
или
$a="ADD 123 sfdsf"

Регулярка (на перле):
if($a =~ /ADD\s+(\d)+[^\d].+/)
или так:
if($a =~ /ADD\s+[\d]+[^\d].+/)

проверяете только одну регулярку, она вернет ложь в первой строке, и истину - во второй.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы