设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1357|回复: 11
打印 上一主题 下一主题

请教几句脚本

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
跳转到指定楼层
1
发表于 2009-4-8 01:43:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
就以下这3句吧,具体怎么理解?
text.gsub!(/\\\\/) { "\000" }
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.sub!(/\[([0-9]+)\]/, "")

版务信息:本贴由楼主自主结贴~
最近在研究XAS

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

2
发表于 2009-4-8 01:49:48 | 只看该作者
text.gsub!(/\\\\/) { "\000" }

在 text 中匹配 \\ ,替换成 \000

text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }

在 text 中匹配 \c[X] or \C[X] , X 是数字,替换成 \001[X]。
也可以写成 text.gsub!(/\\c\[([0-9]+)\]/i)

text.sub!(/\[([0-9]+)\]/, "")

在 text 中匹配第一次出现的 [X] , X 是数字, 替换成 ""

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
3
发表于 2009-4-8 01:54:37 | 只看该作者
gsub!(pattern) {|matched| .... }
以 replace 来替换字符串中所有与 pattern 相匹配的部分。

sub!(pattern) {|matched| ... }
用 pattern 来替换首次匹配 pattern 的部分。


当检测到输入字符流中有 \\\\ 时,用 \000 取代之
当检测到输入字符流中有 \C 活 \c 时  用\001取代
用''来匹配[ ]内的数字,下面引用时用 $1表示上次匹配的内容

这些东西不用知道到底是干什么,只要知道凡是匹配都是这种语法格式就行了。默认的脚本中只有在显示对话的脚本中才会出现这种格式。
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

4
发表于 2009-4-8 01:57:33 | 只看该作者
以下引用tommay于2009-4-7 17:54:37的发言:

当检测到输入字符流中有 \\\\ 时,用 \000 取代之

这些东西不用知道到底是干什么,只要知道凡是匹配都是这种语法格式就行了。默认的脚本中只有在显示对话的脚本中才会出现这种格式。


1. 第一个匹配的应该是 \\ , 第一个和第三个的 \ 是用来转义的。

2. 这个类似于在字符串里的搜索策略吧.

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
5
 楼主| 发表于 2009-4-8 02:00:51 | 只看该作者
正则表达式?
比如这句text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
还是看不懂这些/、\、+代表什么意思,F1里的说明太官方话了,学不会
最近在研究XAS
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

6
发表于 2009-4-8 02:06:27 | 只看该作者
以下引用赛露休斯于2009-4-7 18:00:51的发言:

正则表达式?
比如这句text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
还是看不懂这些/、\、+代表什么意思,F1里的说明太官方话了,学不会


/ \ + [ ] 什么的都是正则的元字符。

就说这个吧, /\\[Cc]\[([0-9]+)\]/

最外面的 /  / 是正则的开始与结束标志。在里面的都是字符都按正则处理。

然后再看 \\[Cc] , 因为 \ 也是正则的元字符之一,所以要匹配 \ 的话,就必须这么写 \\ ,第一个 \ 是用来转义的,第二个才是真正要匹配的 \ 。

[Cc] ,夹在 [ ] 中间的是一个字符集,就是说这里匹配的是 C c ,就是大小写的 C c ,比如
[0-9] 就是匹配所有的数字。

\[  ,同 \\, [ 也是元字符。

[0-9]+ 这个也一样,只是加了个 + ,表示最少要有一个数字。

\] 同 \[ 。
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
7
发表于 2009-4-8 02:13:58 | 只看该作者
原来是燐大人,在下献丑了- -
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-1-12
帖子
1140
8
发表于 2009-4-8 02:16:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

9
发表于 2009-4-8 02:18:04 | 只看该作者
以下引用tommay于2009-4-7 18:13:58的发言:

原来是燐大人,在下献丑了- -


嘛,献丑的是我呢,我是新人(>_<){/hx}。

不知道 LZ 明白了没? 正则 比较难明白,而且我写的也比较别扭~~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
10
 楼主| 发表于 2009-4-8 02:19:27 | 只看该作者
确实有些难
( ) 表示什么意思?

最近在研究XAS
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-16 11:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表