常见的快速使用

正则表达式通常在方法中用作参数,以检查是否存在其他字符串或搜索和/或替换字符串。

你经常会看到以下内容:

string = "My not so long string"
string[/so/] # gives so
string[/present/] # gives nil
string[/present/].nil? # gives true

因此,你可以简单地将其用作检查字符串是否包含子字符串

puts "found" if string[/so/]

更高级但仍然短而快:使用第二个参数搜索特定组,2 是本例中的第二个,因为编号从 1 开始而不是 0,组是括在括号中的组。

string[/(n.t).+(l.ng)/, 2] # gives long

也经常使用:用 subgsub 搜索和替换,\1 给出第一个找到的组,\2 给第二个:\2

string.gsub(/(n.t).+(l.ng)/, '\1 very \2') # My not very long string

记住最后的结果,可以在以下行中使用

$2 # gives long