Project1

标题: 正则:提取[]里的内容 [打印本页]

作者: zh99998    时间: 2008-9-15 15:29
标题: 正则:提取[]里的内容
"<头像名[actor1]头像编号[0]背景[0]位置[2]>"   ==>["actor1",0,0,2]
[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 雪流星    时间: 2008-9-15 15:48
"<头像名[actor1]头像编号[0]背景[0]位置[2]>"   ==>["actor1",0,0,2]


  1. REG = /<头像名\[(\w+)\]头像编号\[(\d+)\]背景\[(\d+)\]位置\[(\d+)\]>/
  2. "<头像名[actor1]头像编号[0]背景[0]位置[2]>" =~ REG

  3. a = [$1.to_s, $2.to_i, $3.to_i, $4.to_i]
  4. p a # =>  ["actor1",0,0,2]
复制代码
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: CIS狂人    时间: 2008-10-2 22:22
  1. imp = "<头像名[]头像编号[0]背景[0]位置[2]>".scan(/./)
  2. sav = {}

  3. m = false
  4. p = 0
  5. for i in imp
  6.   if (/[ \[ ]/ =~ i) == 0
  7.     m = true
  8.     sav[p] = []
  9.   end
  10.   if m == true
  11.     sav[p].push(i)
  12.   end
  13.   if (/[ \] ]/ =~ i) == 0
  14.     m = false
  15.     p += 1
  16.   end
  17. end

  18. for s in sav.keys
  19.   sav[s].delete("[")
  20.   sav[s].delete("]")
  21.   if s != 0
  22.     sav[s] = sav[s][0].to_i
  23.   end
  24. end

  25. g = ""
  26. for n in sav[0]
  27.   g += n
  28. end
  29. sav[0] = g

  30. outer = []
  31. for s in sav.keys
  32. outer.push(sav[s])
  33. end
  34. p outer
复制代码

啊.....还是有BUG- -不支持空格的文件名字




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