2011-12-30 29 views

回答

5

您可以使用一個票友捕獲:

'hello'.match(/((hell)o)/).captures 
=> ["hello", "hell"] 
+0

真是奇特:-) – 2011-12-30 20:57:59

1

不,正則表達式不起作用這樣。但是你可以做這樣的事情:

terms = %w{hell hello}.map{|t| /#{t}/} 

str = "hello" 

matches = terms.map{|t| str.scan t} 

puts matches.flatten.inspect # => ["hell", "hello"] 
-1

你可以做這樣的事情:

​​

它不會給你["hell", "hello"],而是["hell", "o"]

0

嗯,你總是可以列出常見的子表達式。即以下工作:

r = /hello{0,1}/ 

"hello".scan(r) #=> ["hello"] 
"hell".scan(r) #=> ["hell"] 
+1

後匹配自己或者使用更簡單的'/你好?/' – 2011-12-30 20:47:11