Это будет соответствовать любой строке вплоть до первого некоманда «,». Это то, что вы хотите?
/^([^"]|"[^"]*")*?(,)/
Если вы хотите всех (и в качестве контр-примера для парня, который сказал, что это невозможно), вы можете написать:
/(,)(?=(?:[^"]|"[^"]*")*$)/
, который будет соответствовать всем им. Таким образом,
'test, a "comma,", bob, ",sam,",here'.gsub(/(,)(?=(?:[^"]|"[^"]*")*$)/,';')
заменяет все запятые не внутри кавычек с точкой с запятой и выдает:
'test; a "comma,"; bob; ",sam,";here'
Если вам нужно, чтобы он работал через разрывы строк просто добавьте флаг m (многострочный).
Хотя SourceTree для macOS обновило имя DevOps Azure (из «Visual Studio Team Services»), похоже, что оно не поддерживает новые URL-адреса DevOps Azure.
Вы можете использовать URL-адреса старого формата (в стиле VSTS). Вместо https://dev.azure.com/username
вы можете использовать https://username.visualstudio.com
.
По иронии судьбы, кажется, что SourceTree для Windows по-прежнему называет продукт «Visual Studio Team Services», но поддерживает URL-адреса DevOps нового стиля.)