Project1
标题:
一句脚本代码
[打印本页]
作者:
dengdai87899
时间:
2009-8-25 20:50
提示:
作者被禁止或删除 内容自动屏蔽
作者:
大东
时间:
2009-8-25 21:07
如果我猜的不错!那应该是有关对话的!那应该是用来连接其他的脚本!
作者:
orochi2k
时间:
2009-8-25 22:29
就是,把一个字符串里所有
\C[数字] 转换成 \001[数字]
作者:
紫苏
时间:
2009-8-25 22:57
p 是一个字符串对象的引用,通过调用它的 gsub! 方法可以对其做批量的字符串替换,而具体的替换规则由 gsub! 的第一个参数决定,也就是这句脚本中两个斜杠 “/” 之间的内容。这个参数是一个正则表达式,用来匹配符合表达式的字符串,一旦匹配,那么就把匹配的字符串替换为 gsub! 方法的块(块即是由左大括号开始、右大括号结束的整个部分)的返回值,在这里就是 "\001[#{$1}]" 这个字符串~
回过头再来看看正则表达式的具体内容:
\\[Cc]\[([0-9]+)\]
这个正则表达式匹配的是:
一个反斜杠“\”(\\ 表示匹配反斜杠本身),紧跟着大写或小写的 C([Cc] 部分),紧跟着一个左中括号“[”(\[ 部分),紧跟着 n 个 0 至 9 的数字([0-9]+ 部分,+ 表示前面的部分出现一次或多次都匹配),紧跟着一个右中括号“]”
一旦匹配上面条件的字符串都将被替换,比如:
\c[0]
\C[3]
\C[9]
\c[7]
最后再回到刚才提到的替换字符串 "\001[#{$1}]",\001 是一个记号,在内存中是 ASCII 码的 1 ,这表示接下来的文字要替换颜色,至于具体是什么颜色取决于 #{$1} 中的这个 $1。#{...} 这是一个内嵌表达式,作用是把大括号包围的表达式解析并返回其值,嵌入到字符串中。$1 是一个全局变量,当匹配正则表达式成功后,正则表达式的括号中匹配成功的具体内容就会被保存到 $1 中,如果有多个括号的话,就根据先后顺序依次保存到 $2、$3,等等等等
回顾一下刚才举出的那四个成功匹配的例子:
\c[0]
\C[3]
\C[9]
\c[7]
这些例子的 $1 依次是:0、3、9、7,所以会被依次替换为:
\001[0]
\001[3]
\001[9]
\001[7]
作者:
dengdai87899
时间:
2009-8-26 10:56
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1