Project1
标题:
文本提取方法~
[打印本页]
作者:
彭格列第XI代
时间:
2013-2-20 18:28
标题:
文本提取方法~
怎么取一段文本中的一部分和修改?
比如一段文本:
——————
HP:100
MP:100
啦啦啦0w0
——————
将HP的数值-10
脚本麻烦~
@protosssonny
召唤P叔卖萌0w0
作者:
zhangbanxian
时间:
2013-2-20 18:52
不用脚本可能真不行,用String#split的方式来取吧- -b
作者:
satgo1546
时间:
2013-2-20 19:02
设a=
HP:100
MP:100
啦啦啦0w0
复制代码
则用脚本:
a.gsub!(/HP:(\d+)/) { "HP:#{$1.to_i - 10}" }
复制代码
注释:关于正则表达式,如果是半角(:)则需要在之前加斜杠,如
a.gsub!(/HP\:(\d+)/) { "HP:#{$1.to_i - 10}" }
复制代码
# 不会regexp只能加斜杠……不想去查参考手册
作者:
彭格列第XI代
时间:
2013-2-20 19:47
satgo1546 发表于 2013-2-20 19:02
设a=则用脚本:注释:关于正则表达式,如果是半角(:)则需要在之前加斜杠,如# 不会regexp只能加斜杠…… ...
就是觉得那些好乱= =
求解释用法0w0
作者:
怪蜀黍
时间:
2013-2-20 20:30
来了来了
拿去自己研究吧
Project1.rar
(238.86 KB, 下载次数: 46)
2013-2-20 20:30 上传
点击文件名下载附件
def miaomiao
# 初始化各种变量
a = []
b = ""
n = 0
# 打开Graphics/Faces/123.txt,若文件不存在就使 f = nil
f = open('Graphics/Faces/123.txt', 'r') rescue nil
unless f
return # 文件不存在返回
end
f.each {|line| a[n] = line ; n += 1} # 将f的每一行分别代入数组a
f.close # 关闭文件f
g = open('Graphics/Faces/124.txt', 'w') # 新建或者打开文件124.txt准备写入
for i in 0...a.size # 按数组a的元素个数的次数反复执行
# 串“100 - 10”的值即90
if a[i].scan(/HP/) != [] # 如果匹配到“HP”字样
# 锁定数组a的这个元素,删除“HP:”后代入c,“\243\272”表示这个中文的冒号
c = a[i].delete("HP\243\272")
# 删除c中的换行符并转换成数值类,“\n”表示换行我们都知道
c = c.delete("\n").to_i
# 把本数组元素替换成“HP:(c-10的值)回车”
a[i].replace("HP\243\272" + "#{c - 10}\n")
end
b += a[i] #把a的这个元素累加到字符类变量b中
end
g.print(b) # 把b的全部内容写进g即124.txt
g.close if g # 关闭存盘124.txt
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1