Project1

标题: 正则匹配 和 gsub! [打印本页]

作者: 八云紫    时间: 2009-3-25 06:37
标题: 正则匹配 和 gsub!
脚本如下:

text = "123\c[1]321"

array = [5,4,3,2,1]

text.gsub!(/\\c\[(0-9)+\]/){ array[$1.to_i] }

p text

为什么输出的是  "123\e1]321"

本意是 改成 array 里的元素的。
[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 木葬枫    时间: 2009-3-25 07:09
追加多五百悬赏――~
作者: 美兽    时间: 2009-3-25 08:25
text = "123\\c[1]321"

array = [5,4,3,2,1]

text.gsub!(/\\c\[([0-9]+)\]/){ array[$1.to_i] }

p text

or

text = '123\c[1]321'

array = [5,4,3,2,1]

text.gsub!(/\\c\[([0-9]+)\]/){ array[$1.to_i] }

p text [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 雪流星    时间: 2009-3-25 09:04
LZ主要的错误在於:
text.gsub!(/\\c\[(0-9)+\]/){ array[$1.to_i] }

应该用方括号 [] 而不是 () 来设定匹配范围
如果要匹配数字,也可以用 \d 来代替 [0-9] [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 八云紫    时间: 2009-3-25 19:51
..........

弄错了。

看 Window_Message 里的脚本看漏掉了,咔咔~~~

感谢 LS 和 LSS 两位~~
作者: 一路一风尘    时间: 2009-3-25 21:34
提示: 作者被禁止或删除 内容自动屏蔽




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