/ / Как да извлечем текст между кавички с регекс в рубин - рубин, регекс

Как да извлечете текст между котировките с регенерация в рубин - рубин, регекс

Имам следния низ и искам да извлека текста между единични кавички.

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

Проблемът за мен е избягалият единичен цитат (може да има множество прояви на избягали знаци), така че съвпадението трябва да бъде

marie d"avignon
-
3

Помощта е оценена

Отговори:

1 за отговор № 1

Можете да опитате по-долу regex,

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

ДЕМОНСТРАЦИЯ

(?:[^"]*\")+ regex гарантира, че в цитирания низ трябва да има избягал цитат.


0 за отговор № 2

Най-просто е вероятно:

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