日期:2014-05-18  浏览次数:20507 次

高手帮我分析一下这个正则表达式
(go\s*){1,} 作用在字符串:Let's go go go! 返回是 go go go

当把表达式改成:
(go\s*){0,} 后就没有返回值了,为什么呢?

{0,}的范围比 {1,}大呀不应该无返回呀?

------解决方案--------------------
{1,} 是匹配1-n次,等价于{1,n}。。
{0,} 是匹配0-n次,等价于{0,n}。。
------解决方案--------------------
因为(go\s*){0,}可以匹配空的,所以结果是匹配了字符串的最前面,看一下m.Index就知道了,参考我的博客
http://blog.joycode.com/saucer/archive/2006/10/11/84963.aspx
------解决方案--------------------
{1,} 是匹配1-n次,等价于{1,n}。。 
{0,} 是匹配0-n次,等价于{0,n}。。
------------------------------
是呀我也是这么想的,如果是这样的话 (go\s*){0,} 也应该返回 go go go
可现在返回的是空,让我怎么也想不通呀! 
-------------------------
LZ就是因为{0,} 是匹配0-n次,等价于{0,n}。。 也匹配空....所以就会出现这样的情况
而不是我们以前学数学的那样 !范围变大了 ....
------解决方案--------------------
5楼正解