Я хотел бы найти строку, которая начинается и заканчивается определенным специальным символом, но пропускает другой конкретный символ.
Я хочу найти любую строку, начинающуюся с «привет» и заканчивающуюся точкой «». а не типа "здесь конец". это нужно пропустить, если «здесь конец» предшествует точке «.».
Образец :
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."
Вы можете
hello.*?(?<!here end)\.
См. демонстрация регулярных выражений. Подробности:
hello
- фиксированная строка.*?
- любые ноль или более символов, кроме символов разрыва строки, как можно меньше(?<!here end)\.
- .
, которому не предшествует here end
.Если вам нужно исключить .
из совпадения, поместите его в поиск, hello.*?(?<!here end)(?=\.)
.
вы пробовали с просмотром вперед?