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

时间:2018-03-27 02:16:46

标签: ruby regex

我想匹配这样的模式:

ssfd

或者这个:

oifdsofijsdf d

单独使用名字或名字和中间名字。

"dsfsf m" =~ /^[A-Za-z]+\s[A-Za-z]$/

为了使中间初始可选,我添加了?:

"dsfsf" =~ /^[A-Za-z](+\s[A-Za-z])?$/

但它给了我错误:

  

未指定重复运算符的目标

我做错了什么?

2 个答案:

答案 0 :(得分:1)

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

*平均长度为0或任何

答案 1 :(得分:1)

问题是你错开了左括号并且旁边有一个“1或更多”运算符(+),因此正则表达式不知道你可以拥有一个或多个:

^[A-Za-z]+(\s[A-Za-z])?$

您可能打算使用的正则表达式(对于您的测试用例,它似乎适用于Rubular)。