我正在使用Ruby 2.0。我目前得到的字符串:在掃描或正則表達式模式中提取Ruby字符串
str = "bar [baz] foo [with] another [one]"
str.scan(/\[.*\]/)
輸出是:
["[baz] foo [with] another [one]"]
當我希望它更像是:
["[baz]","[with]","[one]"]
所以我基本上需要把之間的一切「[]」到數組中。有人可以告訴我我錯過了什麼嗎?
我正在使用Ruby 2.0。我目前得到的字符串:在掃描或正則表達式模式中提取Ruby字符串
str = "bar [baz] foo [with] another [one]"
str.scan(/\[.*\]/)
輸出是:
["[baz] foo [with] another [one]"]
當我希望它更像是:
["[baz]","[with]","[one]"]
所以我基本上需要把之間的一切「[]」到數組中。有人可以告訴我我錯過了什麼嗎?
您的.*
是貪婪的,所以它不會停止,直到最後的括號。
你需要使用一個懶惰量詞.*?
或只能望塵莫及非括號:[^\]]*
'str.scan(/\[.*?\]/)#=> [「[baz]」,「[with]」,「[one]」 ]' – mdesantis