Ruby编写HTML脚本替换小程序实战教程与案例分享
时间:2026-08-18 | 作者:火苗实验室 | 阅读:0在一个文件里有很多这样的内容:
需要实现的替换效果
需要实现的功能是将它替换成:
这个需求看起来简单,实际实现却花了整整半天时间。
原因主要有三点:太久没写Ruby程序,API都比较陌生;对正则表达式,尤其是Ruby的正则,不太熟悉;还有一些细节考虑得不够周全。
实现思路
要实现上述功能,可以分成两步。
第一步:先处理内部换行符
先把
内部的换行符替换掉,变成这种形式:
为什么要先替换换行符?因为读文件时是一行一行读取的。
如果中间有换行符,这一行就读不完整,正则匹配自然也不会完整。
而且替换操作必须限定在内部,不能影响外部内容。
具体实现代码如下:
File.open("逻辑填空2.htm","w") do |test|
File.open("逻辑填空.htm",'r:gbk') do |file|
file.each_line do | line|
if(line.start_with('n"))
line.gsub!(Regexp.new('n'), '')
end
test.print line
end
end
end
实现时要注意的细节
- 输出到文件时用的是
print,而不是puts,否则又会自动加上换行符,前面的替换就白做了。 end_with后面加了个n,因为读取这行结尾时,还会有一个隐形的换行符。- 有时候
前面会有空格,所以可以将start_with改成include来放宽判断条件。
第二步:再用正则完成标签替换
接着读取处理过的文件,再通过正则表达式进行替换。
把结果写到新文件 test.html 中:
File.open("test.html","w") do |test|
File.open("逻辑填空2.htm",'r') do |file|
file.each_line do | line|
line.gsub!(Regexp.new(''), '')
test.puts line
end
end
end
补充说明
这样一来,目标就达成了。
另外,如果文件不是逐行读取,而是整个读入,其实可以用多行匹配的方式:
Regexp.new('',Regexp::MULTILINE)
可惜这里只采用了逐行读取的方法,所以多行匹配模式并未派上用场。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 使用RVM切换Ruby与Rails版本的实现方法
- 时间:2026-08-18
-
- Ruby语言是什么及入门使用方法
- 时间:2026-08-18
-
- Ruby on Rails网站项目搭建入门指南
- 时间:2026-08-18
-
- Ruby插入排序算法实现与二路插入排序代码示例
- 时间:2026-08-18
-
- Ruby图片滤镜算法实现代码与核心原理
- 时间:2026-08-18
-
- Ruby中Hash哈希结构基本操作方法详解
- 时间:2026-08-18
-
- Ruby面向对象编程:类方法与类扩展详解
- 时间:2026-08-18
-
- Ruby正则表达式语法详解与常用示例代码
- 时间:2026-08-18
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
