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

dre*_*ves 7 ruby regex

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

saw*_*awa 1

我认为,直观上 ,match或相关方法=~,表达了某种相等性,正如包含=~相等性=和等价 ~关系的事实所反映的那样(不是在 ruby​​ 中,而是在数学中)。但它并不完全是一个等价关系,在等式三公理(自反性、交换性、传递性)中,交换性在这种关系中似乎是合理的;程序员很自然地期望string.match(regex)or与orstring =~ regex含义相同。我自己,会很难记住是否定义了其中一个而不是另一个。事实上,有些人觉得奇怪,这个方法也让我们想起了某种等式,但它不是可交换的,并提出了问题regex.match(string)regex =~ string===