/ / Como extrair texto entre aspas com regex em ruby ​​- ruby, regex

Como extrair texto entre aspas com regex em ruby ​​- ruby, regex

Eu tenho a seguinte string e quero extrair o texto entre aspas simples.

javascriptfunction("marie d"avignon","-","","3")

O problema para mim é a aspa simples de escape (pode haver várias ocorrências de caracteres de escape), então a correspondência deve ser

marie d"avignon
-
3

Ajuda é apreciada

Respostas:

1 para resposta № 1

Você poderia tentar o abaixo regex,

(?<=")(?:[^"]*\")+[^"]*(?=")

DEMO

(?:[^"]*\")+ regex garante que deve haver uma aspa com escape presente dentro da string entre aspas.


0 para resposta № 2

O mais simples é provavelmente:

str = "javascriptfunction("marie d\"avignon","-","","3")"
#=> "javascriptfunction("marie d\"avignon","-","","3")"
str[/".*?(?<!\)"/]
#=> ""marie d\"avignon""
str.scan /"(.*?(?<!\))"/
#=> [["marie d\"avignon"], ["-"], [""], ["3"]]