string.match(regex)vs regex.match(string)

时间:2011-04-09 20:26:05

标签: ruby regex

Ruby中的string.match(regex)和regex.match(string)有什么区别?在这种语言中使用这两种结构的理由是什么?

2 个答案:

答案 0 :(得分:4)

除了挂掉不同的物体(有时候调用一个而不是另一个物体更方便),它们是相同的。理由是它们既有用又有时比另一个更方便。

答案 1 :(得分:1)

我直截了当地说,match或相关方法=~表达了某种平等,正如=~包含平等=这一事实所表明的那样。和等价的~关系(不是在红宝石中,而是在数学中)。但它并不完全是等价关系,在平等的三个公理(反身性,交换性,传递性)中,特别是交换性在这种关系中似乎是合理的维持;程序员很自然地期望string.match(regex)string =~ regexregex.match(string)regex =~ string具有相同的意义。我自己,如果定义了任何一个而不是另一个,就会有问题。事实上,有些人觉得奇怪的是,方法===,它也提醒我们某种平等,不是可交换的,并且提出了question