[英]Ruby: Insert a character into a string?
1
00:00:00000 -->00:00:00000
2
00:00:00730 -->00:00:04280
So when Sam originally sent me an email to do this course,
3
00:00:04280 -->00:00:08400
he said Ben can you teach a 50 minute course on management.
我想在:00730
插入一个,
所以它变成:00,730
。 我怎样才能做到这一点?
我在想
path = 'lib/subtitle.txt'
lines = IO.readlines(path).map do |line|
*if contains 5 number, then insert a comma into it, like `gsub?`
end
File.open(path, 'w') do |file|
file.puts lines
end
但是我对Regex不太熟悉,有没有更简单的方法?
使用正则表达式-捕获组和反向引用( String#gsub
):
"00:00:04280 -->00:00:08400".gsub(/(\d{2})(\d{3})/, '\1,\2')
# => "00:00:04,280 -->00:00:08,400"
捕获组(...)
可以用\\1
, \\2
替换字符串引用(引用第一个,第二个捕获组)
您也可以简单地运行
`sed -i.bak 's/^\([[:digit:]]\{2\}:[[:digit:]]\{2\}:[[:digit:]]\{2\}\)\([[:digit:]]\{3\} -->[[:digit:]]\{2\}:[[:digit:]]\{2\}:[[:digit:]]\{2\}\)\([[:digit:]]\{3\}\)$/\1,\2,\3/' lib/subtitle.txt `
这将创建备份文件并进行所需的更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.