1 Over the course of my long life, 18 Open it up. 19 What the hell? 20 Aah! 21 [Clatter] 22 Rebekah: Hello. 23 Mm. 24 Lovely to see such a handsome face 25 after a long journey. 26 Can I eat him, brother? 27 Elijah: I'd rather
1 Over the course of my long life, 18 Open it up. 19 What the hell? 20 Aah! 21 [Clatter] 22 Rebekah: Hello. 23 Mm. 24 Lovely to see such a handsome face 25 after a long journey. 26 Can I eat him, brother? 27
就是说如果有连续的两行字幕就把区中的换行符换成空格,有没有办法? long_string = IO.read("the.originals.1.txt") long_string.gsub!(/[A-Za-z][\s][A-Za-z]/,'') 怎么只替换这一部分?
楼上的不够健壮,多一些空格就误判了,而且没必要使用反向环视
r = %r{
(\D) \s* # 行末的最后一个非空白字符不能是数字
(?= ^ \s* \D) # 另一行第一个非空白字符不能是数字
}x
puts s.gsub(r, '\1 ')
#4 楼 @faxiubite 我这没问题啊。。。你是用 Ruby2.0 吗,报什么错。
一楼的也没问题啊,反正你给的例子是没问题,可能你真实的文本还有其他情况,你根据这个思路自己完善吧。
#8 楼 @blackanger C:\Users\zhaowang.TENCENT>ruby -v ruby 2.0.0p247 (2013-06-27) [x64-mingw32] 应该是用 windows 系统的问题吧 我再看看吧 谢谢了!
#5 楼 @__main__ hi 我现在又遇到编码问题了 filename ="log3.txt" r = %r{ (\D) \s* # 行末的最后一个非空白字符不能是数字 (?= ^ \s* \D) # 另一行第一个非空白字符不能是数字 }x s=IO.read(filename) f=open(filename+"changed.txt","w") s.gsub(r, '\1 ')
in `gsub!': invalid byte sequence in GBK (ArgumentError)
我试着将编码改为 UTF-8 还是不行,能帮忙看一下吗?
#12 楼 @faxiubite
s.gsub(r, '\1 ').force_encoding("gb2312")
s.gsub(r, '\1 ').force_encoding("utf-8")
s.gsub(r, '\1 ').force_encoding("GBK")
都不行
“”“”“”“”“”“”“”“”“”“”“”
in gsub': invalid byte sequence in GBK (ArgumentError)
m test.rb:25:in
'
“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”
s=IO.read(filename).force_encoding("ISO-8859-1").encode("UTF-8", replace: nil) Ok 了