红宝石GSUB问题
问题描述:
我有一段文字组成,类似于以下内容:红宝石GSUB问题
==EXCLUDE
#lots of lines of text
==EXCLUDE
#this is what I actually want
所以我试图做删除不需要位:
str.gsub!(/==EX.*?==EXCLUDE/, '')
但是,它不工作。当我试图首先删除\ n字符时,它像梦一样运行。问题是我实际上不能删除\ n字符。如何在保留换行符的情况下进行这样的替换?
答
默认情况下,.
不符合换行符。如果启用Ruby中m
修饰符(在其他语言中,这是s
修改)它应该工作:
str.gsub!(/==EX.*?==EXCLUDE/m, '')
这里有Rubular现场演示:http://rubular.com/r/YxLSB1Iq95
答
尝试str.gsub!(/==EX.*?==EXCLUDE/m, '')
应使其跨越新的路线。
假设您想保留'== EXCLUDE'行的换行符,第二个gsub arg应该是“\ n \ n”。 – JellicleCat