The statement
Regex.Replace("XB", "([^A])B", "$1AB")
produces XAB
, as expected. Can someone explain me why
Regex.Replace("XBB", "([^A])B", "$1AB")
does not produce XABAB
, but XABB
? It's like the regex parser no longer has knownledge of the preceding character when it reaches the second B.
Ultimately, I want to replace all B
s not preceded by a A
by AB
.