Почему это не заменяет все запятые на @, кроме той, что в «местоположении, состоянии»?
$test = preg_replace("#([^ ])([,])([^ ])#","$1@$3","100,,,'test','two',,'location, state',,[],1")
Ожидается: 100@@@'тест'@'два'@@'местоположение, состояние'@@[]@1
Фактические: 100@,,'тест'@'два'@,'местоположение, состояние'@,[]@1
Я думаю, это потому, что последовательные запятые совпадают в шаблоне, как мне заставить его продолжаться с начала совпадающего символа, чтобы включить все запятые?