是否有内置的方式来获得第一个匹配或nil为字符串中的字符。
我可以得到像这样的第一个角色
'word'.match('o').to_s
但如果没有匹配则会""
而不是
答案 0 :(得分:8)
如果给出
match_str
,则在字符串中出现该字符串。如果(...)找不到匹配字符串,则返回
nil
。
'word'['o'] #=> 'o'
'word'['q'] #=> nil
[]
方法非常通用,您也可以通过不同方式传递正则表达式。
答案 1 :(得分:2)
你可以这样做:
'word'.scan('o').first #=> "o"
'word'.scan('e').first #=> nil
答案 2 :(得分:1)
'word'.match(?o)[0] rescue nil
#=> "o"
'word'.match(?q)[0] rescue nil
#=> nil
答案 3 :(得分:0)
'word'.match(/(o)/) && $1
#⇒ "o"
'word'.match(/(s)/) && $1
#⇒ nil