^start of line
Non-Capturing Group(?:[^,\r\n]*,){6} {6}repeats the group contents below exactly 6 times:
Negated Character Class[^,\r\n]* *matches any number of characters outside the set below:
,the literal , (4410 / 548 / 2C16)
\ra carriage return (ASCII 13)
\na line-feed (newline) character (ASCII 10)
,the literal , (4410 / 548 / 2C16)
.*any character (except for line terminators), repeated any number of times
\r?optionally matches a carriage return (ASCII 13)
\na line-feed (newline) character (ASCII 10)
Non-Capturing Group(?:[^,\r\n]*,){9} {9}repeats the group contents below exactly 9 times:
Negated Character Class[^,\r\n]* *matches any number of characters outside the set below:
,the literal , (4410 / 548 / 2C16)
\ra carriage return (ASCII 13)
\na line-feed (newline) character (ASCII 10)
,the literal , (4410 / 548 / 2C16)
.*any character (except for line terminators), repeated any number of times
Non-Capturing Group(?:\r?\n(?!(?:[^,\r\n]*,){6}.*\r?\n(?:[^,\r\n]*,){9}).*)* *repeats the group contents below any number of times:
\r?optionally matches a carriage return (ASCII 13)
\na line-feed (newline) character (ASCII 10)
Negative Lookahead(?!(?:[^,\r\n]*,){6}.*\r?\n(?:[^,\r\n]*,){9}) Non-Capturing Group(?:[^,\r\n]*,){6} {6}repeats the group contents below exactly 6 times:
Negated Character Class[^,\r\n]* *matches any number of characters outside the set below:
,the literal , (4410 / 548 / 2C16)
\ra carriage return (ASCII 13)
\na line-feed (newline) character (ASCII 10)
,the literal , (4410 / 548 / 2C16)
.*any character (except for line terminators), repeated any number of times
\r?optionally matches a carriage return (ASCII 13)
\na line-feed (newline) character (ASCII 10)
Non-Capturing Group(?:[^,\r\n]*,){9} {9}repeats the group contents below exactly 9 times:
Negated Character Class[^,\r\n]* *matches any number of characters outside the set below:
,the literal , (4410 / 548 / 2C16)
\ra carriage return (ASCII 13)
\na line-feed (newline) character (ASCII 10)
,the literal , (4410 / 548 / 2C16)
.*any character (except for line terminators), repeated any number of times
g modifier: global. Finds all matches instead of stopping after the first
m modifier: multiline. Causes ^ and $ to match the start and end of each line, not only the start and end of the string