Регулярное выражение hava начинается и заканчивается и пропускает определенный символ

Я хотел бы найти строку, которая начинается и заканчивается определенным специальным символом, но пропускает другой конкретный символ.

Я хочу найти любую строку, начинающуюся с «привет» и заканчивающуюся точкой «». а не типа "здесь конец". это нужно пропустить, если «здесь конец» предшествует точке «.».

Образец :

String para = "XXXX@gxxl.com. this will share the costs and hello you  the initial here end. must be carrefully done.Keep going."

Я пробовал следующее регулярное выражение, но оно не работает:

hello.+?((?=([.]))

Я получил это:

"hello you  the initial here end."

но это обязательно:

"hello you  the initial here end. must be carrefully done."

вы пробовали с просмотром вперед?

SantiG 10.04.2022 00:34
Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
1
1
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете

hello.*?(?<!here end)\.

См. демонстрация регулярных выражений. Подробности:

  • hello - фиксированная строка
  • .*? - любые ноль или более символов, кроме символов разрыва строки, как можно меньше
  • (?<!here end)\. - ., которому не предшествует here end.

Если вам нужно исключить . из совпадения, поместите его в поиск, hello.*?(?<!here end)(?=\.).

Другие вопросы по теме