@vahelce

Почему не работает регулярное выражение в Java?

Разрабатываю бота для ВК, нужно убирать обращение из команды к нему из сообщения если оно есть. Обращение может быть по имени бота или ID, а так же через запятую и без.

Сделал на regex101.com такую регулярку: (i?)(бот|@botid|\\*botid)|(,{1})
На сайте всё обращение стиралось прекрасно, оставалась только команда и всё, что идет после нее, но в Java такое уже не работает: просто не находит совпадений.

private static final Pattern PATTERN = Pattern.compile("(i?)(бот|@botid|\\*botid)|(,{1})", Pattern.CASE_INSENSITIVE);
    
public static void main(String[] args) {
    String cmd = "бот, тест";
    Matcher matcher = PATTERN.matcher(cmd);
    if (matcher.matches()) {
        cmd = cmd.substring(matcher.start(), matcher.end());
        System.out.println(cmd);
    } else {
        System.out.println("не найдено совпадений");
    }
}
  • Вопрос задан
  • 306 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы