Как мне разобрать строку в кавычках внутри другой строки? - PullRequest
0 голосов
/ 24 ноября 2010

Я хочу извлечь цитируемые подстроки из строки.Это пример:

string = 'aaaa' + string_var_x + 'bbbb' + string_var_y

Вывод после синтаксического анализа должен быть:

["'aaaa'", "'bbbb'"]

Исходное решение было string.scan /'\w'/, что почти нормально.

Тем не менее я не могу заставить ее работать над более сложной строкой, поскольку подразумевается, что внутри '...' могут быть любые символы (включая цифры и !@#$%^&*() независимо от того, что).* Есть идеи?

Интересно, есть ли способ заставить /'.*'/ работать, но сделать его менее жадным?

Ответы [ 2 ]

5 голосов
/ 24 ноября 2010

Ленивый должен это исправить:

/'.*?'/

Другая возможность заключается в использовании этого:

/'[^']*'/
0 голосов
/ 25 ноября 2010

Альтернативный способ сделать это:

>> %{string = 'aaaa' + string_var_x + 'bbbb' + string_var_y}.scan(/'[^'].+?'/)  
#=> ["'aaaa'", "'bbbb'"]

String.scan часто упускают из виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...