Avoid repeated startswith with rule.split(':', 1)

Strings are immutable, so after a split you have three variables instead
of one: the original variable, the bit before ':' and the bit
after ':'. Without the 1 (means: "stop after the first ':' found") you get a
list.