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 № 1Você poderia tentar o abaixo regex,
(?<=")(?:[^"]*\")+[^"]*(?=")
(?:[^"]*\")+
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"]]