Ruby正则表达式部分匹配多行

时间:2015-02-18 16:19:05

标签: ruby regex

所以这是我的代码

convert = contents.gsub(/\\s1(.*?)(\n\\r.*?)?\n((?s)\\ms3(.*?)\\p)/, 'replacement code')

在第一位:\\s1(.*?)(\n\\r.*?)?\n当我告诉它有一个换行符时,我只希望它匹配换行符。但是在搜索\\ms3(.*?)\\p时,我希望它能够获取任何新行。不幸的是,Ruby似乎不支持这个(?s)前缀。有没有办法做到这一点?

感谢

2 个答案:

答案 0 :(得分:0)

(.*?)==>([\s\S]*?)

您可以使用此代替DOTALL修饰符。

答案 1 :(得分:0)

convert = contents.gsub(/\\s1(.*?)(\n\\r.*?)?\n((\n*)\\ms3(.*?)\\p)/, 'replacement code')

这将捕获“\ ms3”之前的任何(0+)换行符。如果这不是您的意思,请澄清您对(?s)的期望功能?