Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby string.match(regex)与regex.match(string)_Ruby_Regex - Fatal编程技术网

Ruby string.match(regex)与regex.match(string)

Ruby string.match(regex)与regex.match(string),ruby,regex,Ruby,Regex,Ruby中的string.match(regex)和regex.match(string)有什么区别?在语言中使用这两种结构的理由是什么?除了挂起不同的对象(这有时使调用一个而不是另一个更方便)之外,它们是相同的。理由是它们都是有用的,有时一个比另一个更方便。我认为,直觉上,匹配,或相关的方法=~,表示某种平等,正如=~包含等式=和等价关系~这一事实所反映的那样(不是在ruby中,而是在数学中)。但它并不完全是一种等价关系,在平等的三个公理(自反性、交换性、及物性)中,特别是交换性似乎在这种关系

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

除了挂起不同的对象(这有时使调用一个而不是另一个更方便)之外,它们是相同的。理由是它们都是有用的,有时一个比另一个更方便。

我认为,直觉上,
匹配
,或相关的方法
=~
,表示某种平等,正如
=~
包含等式
=
和等价关系
~
这一事实所反映的那样(不是在ruby中,而是在数学中)。但它并不完全是一种等价关系,在平等的三个公理(自反性、交换性、及物性)中,特别是交换性似乎在这种关系中保持合理;程序员自然希望
string.match(regex)
string=~regex
regex.match(string)
regex=~string
的意思相同。我自己,会有问题记住,如果其中一个是定义的,而不是其他。事实上,有些人觉得奇怪的是,方法
==
,它也提醒我们某种平等,是不可交换的,并提出了s.

我真的不喜欢这种理由(可能没有比“他们在那里,所以接受它”更好的理由了)。它们都很有用,因为它们都有相同的用途。我可以说,一个的存在使得另一个无用。除了它们没有相同的用途。它们只是有非常相似的用途。无论如何,我不认为他们需要理由。如果你真的想要一个需要证明的Ruby语言特性(并且缺少它),那么就选择
for。。。在…
循环中。那么它们是不同的?你能改进你的答案来反映这一点吗?我不是一个ruby程序员,我觉得这太棒了——因为我在不同的语言中使用正则表达式,而且每次我以错误的顺序得到正则表达式时——如果你可以相信,在其他语言中,顺序也不重要的话,那就太好了。