我想从字符串中提取引用的子字符串。这是一个例子:
string = 'aaaa' + string_var_x + 'bbbb' + string_var_y
解析后的输出应为:
["'aaaa'", "'bbbb'"]
最初的解决方案是string.scan /'\w'/
,这几乎没问题。
仍然我不能让它处理更复杂的字符串,因为它暗示在'...'
内可以有任何类型的字符(包括数字和!@#$%^&*()
无论如何)。
有什么想法吗?
我想知道是否有某种方法可以使/'.*'/
正常工作,但不要贪婪吗?
答案 0 :(得分:5)
懒惰应该解决这个问题:
/'.*?'/
另一种可能性是使用它:
/'[^']*'/
答案 1 :(得分:0)
另一种方法是:
>> %{string = 'aaaa' + string_var_x + 'bbbb' + string_var_y}.scan(/'[^'].+?'/)
#=> ["'aaaa'", "'bbbb'"]
String.scan
被忽视了很多。