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=
  1. HP:100
  2. MP:100
  3. 啦啦啦0w0
复制代码
则用脚本:
  1. a.gsub!(/HP:(\d+)/) { "HP:#{$1.to_i - 10}" }
复制代码
注释:关于正则表达式,如果是半角(:)则需要在之前加斜杠,如
  1. 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)
  1. def miaomiao
  2.   # 初始化各种变量
  3.   a = []
  4.   b = ""
  5.   n = 0
  6.   # 打开Graphics/Faces/123.txt,若文件不存在就使 f = nil
  7.   f = open('Graphics/Faces/123.txt', 'r') rescue nil
  8.   unless f
  9.     return # 文件不存在返回
  10.   end  
  11.   f.each {|line| a[n] = line ; n += 1} # 将f的每一行分别代入数组a
  12.   f.close # 关闭文件f
  13.   g = open('Graphics/Faces/124.txt', 'w') # 新建或者打开文件124.txt准备写入
  14.   for i in 0...a.size # 按数组a的元素个数的次数反复执行
  15.     # 串“100 - 10”的值即90
  16.     if a[i].scan(/HP/) != [] # 如果匹配到“HP”字样
  17.       # 锁定数组a的这个元素,删除“HP:”后代入c,“\243\272”表示这个中文的冒号
  18.       c = a[i].delete("HP\243\272")
  19.       # 删除c中的换行符并转换成数值类,“\n”表示换行我们都知道
  20.       c = c.delete("\n").to_i
  21.       # 把本数组元素替换成“HP:(c-10的值)回车”
  22.       a[i].replace("HP\243\272" + "#{c - 10}\n")
  23.     end
  24.     b += a[i] #把a的这个元素累加到字符类变量b中
  25.   end
  26.   g.print(b) # 把b的全部内容写进g即124.txt
  27.   g.close if g # 关闭存盘124.txt
  28. end  
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1