I have a string like this
\"yJdz:jkj8h:jkhd::hjkjh\"
I want to split it using colon as a separator, but not a double colon. Desired result:
You could split on (?. This uses two negative lookarounds (a lookbehind and a lookahead) which assert that a valid match only has one colon, without a colon before or after it.
To explain the pattern:
(?
Both lookarounds are needed, because if there was only the lookbehind, then the regular expression engine would match the first colon in :: (because the previous character isn't a colon), and if there was only the lookahead, the second colon would match (because the next character isn't a colon).