2010-11-10 101 views
0

这是什么RUBY正则表达式做:

match = /^plus_([0-9]+)$/.match(m.to_s) 

这似乎是匹配“plus_”,然后一个数字。

但是.match(m.to_s)部分在做什么?它链接到自己?我不明白。

对不起,它的Ruby。

+0

这不是Python。 – katrielalex 2010-11-10 15:13:57

+2

这不是月亮! – 2010-11-10 15:15:35

+0

对不起它的红宝石。 – Blankman 2010-11-10 15:17:17

回答

0

我从来没有看红宝石,但基于什么人在这里说,这似乎是调用刚刚定义的正则表达式的“匹配”的方法,对串“m”。

所以正则表达式本身变成一个“对象”,以该方法“匹配”被调用,并且所述参数是(m.to_s),这仅仅是一个字符串的结果。然后“match()”方法的结果返回到一个名为“match”的变量。

我认为方法调用与返回变量名称相同的事实是什么让这看起来很奇怪。

现在这可能是100%错误,因为我从来没有看过红宝石,但基于别人的说法,这就是它的样子。

+1

对不起,但我必须对此低估。我不认为答案应该写成:A)完全基于解释他人对问题的答案; B)没有任何关于问题所针对的环境的经验。 “这可能是100%错误”的答案让我觉得有点不合适。 – 2010-11-10 15:23:00

+1

在delnan编辑他的答案之前,这里的每个人都围着一些看起来很明显的东西跳舞,如果你看看人们对它的评论。你基本上低估了我的声音分析。非常感谢。如果我没有在其上加上限定符,你可能会投票给我。这很有道理。 – 2010-11-10 15:29:03

+0

@凯文:我曾经对我的无关答案有一个赞成 - 理所当然。 (我没有倒退,但我可以理解Rob在抱怨什么) – delnan 2010-11-10 15:44:58

1

哈哈,不错的编辑!我认为这是Ruby开始 - 我的答案仍然成立。

你是对正则表达式匹配什么是正确的。但是,.match()是用于将正则表达式与字符串进行匹配的方法。它返回一个MatchData对象,然后您可以使用该对象来查找有关匹配的信息。

所以/^plus_([0-9]+)$/创建一个正则表达式对象,.match(m.to_s)匹配它针对米作为字符串,并将所得MatchData被存储在匹配。

the Regexp documenation

相关问题