此教程是写给和我一样的新人,高手直接54就好 >_<
什么是正则表达式呢?
我的理解就是
用简洁的语句来实现模式串匹配,不用自己写一大段代码去实现 = =
大家刚开始去接触正则表达式的时候,会觉得这些表达式非常难以理解,不知道在写些什么
但看懂后,会觉得非常简单
现在就来讲怎么来使用,下面讲两个比较简单和常用的
 string[/self/]
 当string 含有 self 的时候 返回self
 这个用来搜索string中是否含有模式串
 str = "foofoofoo"
 p str[/foo/]  #=>"foo"
 self =~ string
 与 string 字符串进行正则表达式的匹配操作。
 返回index
 p "foo" =~ /foo/ #=>0
 还有的方法请参考Regexp类,相信不难理解
 接下来就是此讲的重点和难点了,大家要听好了
 先看下面的一些语句 
 "foo" =~ /foo/
 "md123556cd324dsw241" =~ /md(\d+)cd(\d+)dsw(\d+)/
 "v[1]" =~ /\\[Vv]\[([0-9]+)\]/
 是不是有点晕,稳住,咱来一条一条慢慢讲
 首先,//之间的就是要匹配的string,第一个的foo就是要匹配的string
 但后面几个就出现很多看不懂的符号 = =
 这些看不懂的符号就是ruby支持的正则表达式符号(元字符)
 有这么个规则:
 不带\的数字和字母不是元字符 
 带\的符号也不是元字符 
元字符进行匹配的时候,不是直接用指定的string来匹配,而是用元字符代表的范围来进行范围匹配
 下面就是一些比较常见的元字符的意义
 更多的规则请参看f1 or 参考手册
\w
 匹配包括下划线的任何字母数字字符。等同于[0-9A-Za-z_]。
 中文的全角字符也匹配。
 \W
 匹配任何非字母数字字符。\w 以外的字符。
 \s
 匹配任何空字符,包括空格、制表符、换页符等等。等同于[ \t\n\r\f\v]。
  \S
 匹配任何非空字符。[ \t\n\r\f\v]以外的字符。
 \d
 匹配一个数字字符。等同于[0-9]。
 \D
 匹配一个非数字字符。
  +
 负责指定数量(quantifiers)。表示前面子表达式至少出现 1 次
 +?
 负责指定数量(quantifiers)。表示前面子表达式至少出现 1 次(尽量匹配短的部分)。
 {m} 
 {m,} 
 {m,n}
 指定子表达式重复出现的次数(interval quantifier)。分别表示前面子表达式重复出现
 m 次 
 至少 m 次 
 至少 m 次,至多 n 次 
  有了上面的基础作为铺垫,继续看/\md(\d+)cd(\d+)dsw(\d+)/
  md,cd,dsw 就是匹配 md,cd,dsw
  \d根据上面的元字符的讲解就是 匹配一个数字字符,等同于[0-9]
  d后面的+号指的是前面的表达式(也就是数字)至少出现一次
  最后来讲这个括号,
()并不能进行匹配,但可以在匹配成功后,抽出匹配部分并存在$1,$2.....中
  所以当你p $1,$2,$3 的时候,显示出来的是123556,324,241
  再看下一个/\\[Vv]\[([0-9]+)\]/
  \\前面的一个\是转义,匹配的是\这个符号 
  后面的 [ 和 ] 前面的\也是转义,匹配的是[ 和 ]这两个符号
  [Vv] [0 - 9] 正则表达式 [] 负责指定字符簇,这将匹配 [] 内列出的任何一个字符
  Vv匹配 V or v [0 - 9 ] 匹配 0 -9 (加入- 必须按照ascii码)
  ()的意思在上面已经讲了 ,+号就是前面的数字可以出现一次或多次,1,25这样都行
   有兴趣的话,还可以看一下 window_message中的正则,这个就是从那里面选出来的
  写了这么多,不知道大家看懂没有,下面留个作业 = =bbb
  很简单,大家不妨一试
  提取[]中的内容
  ""   ==>["actor1",0,0,2]
  
参考答案(此问题来自vx提问区)
             本帖来自P1论坛作者dbshy,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:
https://rpg.blue/forum.php?mod=viewthread&tid=108218  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。