I have two regular expressions, for use with Regex.Split
:
(?<=\G[^,],[^,],)
and
(?<=\G([^,],){2})
When splitting the string "A,B,C,D,E,F,G,"
, the first one results in:
A,B,
C,D,
E,F,
G,
and the second results in:
A,B,
A,
C,D,
C,
E,F,
E,
G,
What is going on here? I thought that (X){2}
was always equivalent to XX
, but I'm not sure anymore. In my actual problem, I need to do something like quite a bit more complex, and I need to do it sixty nine times, so just repeating the pattern is less than ideal.
From docs:
You have a capture group in your second expression. Try non-capturing parens:
From the documentation for
Regex.Split
The internal parentheses are capturing. Try using
(?:[^,],)
instead.