Вы хотите смотреть вперед и смотреть назад.За каким материалом сопоставления следует или предшествует определенный символ, без включения этого символа в совпадение.
Для просмотра вперед у вас будет что-то вроде. * (? = :), что означает любой символ, 0 или более раз, после которых следует двоеточие, но не включайте двоеточие в совпадении,
Для просмотра назад у вас есть. * (? <= :), что означает любой символ 0 илибольше раз, перед двоеточием, но не включайте двоеточие в матче.Хитрость заключается в том, что выражение для поиска прибывает ПОСЛЕ остального, что может показаться нелогичным, потому что вы ищете двоеточие, которое предшествует, но это потому, что любое регулярное выражение действительно возвращает позицию, и вы хотите, чтобы двоеточие пришлопрямо перед этой позицией. </p>