ruby正则表达式与字符串不匹配,如果+&引用;源字符

ruby正则表达式与字符串不匹配,如果+&引用;源字符,ruby,regex,Ruby,Regex,我有一个字符串,其中包含一个国际电话号码,例如+44 9383 33333,但奇怪的是,当我尝试正则表达式匹配时(注意正则表达式正确地“转义”),正则表达式匹配失败 e、 g 我尝试过对输入字符串进行转义,例如+、\+等,但没有成功 我一定是在做什么蠢事 您有一个双反斜杠,它告诉正则表达式解析器查找文本反斜杠。因为它后面还有一个+,所以正则表达式解析器会查找一个或多个反斜杠。尝试一下\+(因此整个过程应该是:/(001144 | 004 | 0 | \+44)/您得到了一个双反斜杠,它告诉reg

我有一个字符串,其中包含一个国际电话号码,例如+44 9383 33333,但奇怪的是,当我尝试正则表达式匹配时(注意正则表达式正确地“转义”),正则表达式匹配失败

e、 g

我尝试过对输入字符串进行转义,例如+、\+等,但没有成功


我一定是在做什么蠢事

您有一个双反斜杠,它告诉正则表达式解析器查找文本反斜杠。因为它后面还有一个
+
,所以正则表达式解析器会查找一个或多个反斜杠。尝试一下
\+
(因此整个过程应该是:
/(001144 | 004 | 0 | \+44)/

您得到了一个双反斜杠,它告诉regex解析器查找一个文本反斜杠。因为它后面还有一个
+
,所以regex解析器随后会查找一个或多个反斜杠。尝试一下
\+
(所以整个过程应该是:
/(001144 | 004 | 0 | \+44)/

 "001144 9383 33333".match(/(001144|004|0|\\+44)/) # works

 "+44 9383 33333".match(/(001144|004|0|\\+44)/) # DOES NOT WORK