Ruby 使用可选字符时未指定重复运算符的目标

Ruby 使用可选字符时未指定重复运算符的目标,ruby,regex,Ruby,Regex,我想匹配这样的模式: ssfd 或者这个: oifdsofijsdf d 所以,一个单独的名字或名字和中间的首字母 "dsfsf m" =~ /^[A-Za-z]+\s[A-Za-z]$/ 为了使中间的首字母可选,我添加了?: "dsfsf" =~ /^[A-Za-z](+\s[A-Za-z])?$/ 但它给了我一个错误: 未指定重复运算符的目标 我做错了什么 /^[A-Za-z]+\s*[A-Za-z]*$/ *平均长度为0或任何问题是您将左括号放错了位置,并在其旁边有一个“1或多个

我想匹配这样的模式:

ssfd
或者这个:

oifdsofijsdf d
所以,一个单独的名字或名字和中间的首字母

"dsfsf m" =~ /^[A-Za-z]+\s[A-Za-z]$/
为了使中间的首字母可选,我添加了?:

"dsfsf" =~ /^[A-Za-z](+\s[A-Za-z])?$/
但它给了我一个错误:

未指定重复运算符的目标

我做错了什么

/^[A-Za-z]+\s*[A-Za-z]*$/

*
平均长度为0或任何

问题是您将左括号放错了位置,并在其旁边有一个“1或多个”运算符(
+
),因此正则表达式不知道您可以有一个或多个:

^[A-Za-z]+(\s[A-Za-z])?$
是您可能打算使用的正则表达式(它似乎适用于您的测试用例)。

^[A-Za-z]+(\s[A-Za-z])?$,请尝试此正则表达式。你设置了一个错误的位置