2013-10-29 56 views
0

我想从字符串的开头删除单个*字符和任何空格。为什么红宝石警告我这个正则表达式?

这是正则表达式我有/^\*{1}(?:\s+)?/

这里是一个Rubular链接http://rubular.com/r/r5i4FpQdK2

但是Ruby的是,当我尝试使用它抛出一个警告。

001:0> regex = /^\*{1}(?:\s+)?/ 
warning: nested repeat operator + and ? was replaced with '*': /^\*{1}(?:\s+)?/ 
=> /^\*{1}(?:\s+)?/ 

实际测试仍然工作

002:0> "* foo" =~ regex 
=> 0 

,但我想不出是什么导致了警告。

任何意见,将不胜感激。

回答

1

代替(?:\s+)?使用(?:\s*)或只是\s*

\s+允许一个或多个空格和以下?使得可选的,它可以与零个或更多的空间作为\s*当然

+0

所取代。应该明白这一点。感谢堆。 –