É possível escrever uma expressão regular que corresponda a um padrão específico e depois substituir por uma parte do padrão

Estou trabalhando com alguns arquivos de texto delimitados por vírgula. O arquivo é composto por aproximadamente 400 linhas e 94 colunas, todas delimitadas por vírgulas e entre aspas duplas:

"H","9","YES","NO"....

Meu objetivo é dividir o arquivo em suas respectivas colunas usando o delimitador de vírgula. Infelizmente, existem vários campos nas linhas que têm o seguinte formato:

"4,5"  or "2,5,8"

Esses campos estão corrompendo a estrutura da coluna do arquivo ao analisar o arquivo na vírgula. Então, o que eu gostaria de fazer é usar a expressão regular para fazer algum tipo de localização e substituição, para que eu possa analisar com êxito meu arquivo. Por exemplo:

 "H","9","YES","NO","4,5","Y","N"  would become this:


"H","9","YES","NO","4|5","Y","N"

para que, quando analise o arquivo, obtenha sete colunas em vez de oito.

Eu escrevi umexpressão regular que lida com "2,5" ou "2,3,4 correspondentes", mas não sei como lidar com a peça de substituição.

É possível realizar essas expressões regulares?

Nota: Estou usando expressões regulares perl.

questionAnswers(2)

yourAnswerToTheQuestion