我正在尝试查找并替换标准错误的所有异常处理实例,例如:
begin
...
rescue StandardError => e
logger.debug e.to_s
end
这里的答案听起来应该做我想要的:
它使我想到了以下两个可能的正则表达式:
begin(.*?)rescue
(?<=begin)(.*?)(?=rescue)
这些都不匹配任何东西。我不确定问题出在正则表达式还是IDE(Rubymine)。
建议?谢谢!
我正在尝试查找并替换标准错误的所有异常处理实例,例如:
begin
...
rescue StandardError => e
logger.debug e.to_s
end
这里的答案听起来应该做我想要的:
它使我想到了以下两个可能的正则表达式:
begin(.*?)rescue
(?<=begin)(.*?)(?=rescue)
这些都不匹配任何东西。我不确定问题出在正则表达式还是IDE(Rubymine)。
建议?谢谢!
. 默认情况下不匹配换行符。
(?s)
在正则(?sm)
表达式中添加 or 以使 dot(.) 匹配换行符。或添加s
或sm
切换。
?> "begin statements... rescue".scan /begin(.*?)rescue/
=> [[" statements... "]]
>> "begin statements...\n rescue".scan /begin(.*?)rescue/
=> []
>> "begin statements...\n rescue".scan /begin(.*?)rescue/s
=> []
>> "begin statements...\n rescue".scan /begin(.*?)rescue/sm
=> [[" statements...\n "]]