Это будет соответствовать любой строке вплоть до первого некоманда «,». Это то, что вы хотите?
/^([^"]|"[^"]*")*?(,)/
Если вы хотите всех (и в качестве контр-примера для парня, который сказал, что это невозможно), вы можете написать:
/(,)(?=(?:[^"]|"[^"]*")*$)/
, который будет соответствовать всем им. Таким образом,
'test, a "comma,", bob, ",sam,",here'.gsub(/(,)(?=(?:[^"]|"[^"]*")*$)/,';')
заменяет все запятые не внутри кавычек с точкой с запятой и выдает:
'test; a "comma,"; bob; ",sam,";here'
Если вам нужно, чтобы он работал через разрывы строк просто добавьте флаг m (многострочный).
Ошибка правописания при определении класса ...
@injectable должно быть @Injectable ()