我正在尝试查找并替换标准错误的所有异常处理实例,例如:
begin
...
rescue StandardError => e
logger.debug e.to_s
end
这里的答案听起来应该做我想做的事情:
Regular Expression to find a string included between two characters while EXCLUDING the delimiters
它引导我进入以下两种可能的正则表达式:
begin(.*?)rescue
(?<=begin)(.*?)(?=rescue)
这些都不匹配任何东西。我不确定问题出在正则表达式还是IDE(Rubymine)上。
连连呢?谢谢!
答案 0 :(得分:2)
。默认情况下与换行符不匹配。
在正则表达式中添加(?s)
或(?sm)
以使点(。)与换行符匹配。
或者添加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 "]]