yihen182017-10-03TA获得超过979个赞关注Lua中修饰符-和*都表示匹配前一字符0次或多次,但-进行的是最短匹配,类似传统正则中的非贪婪匹配,而*则是最长匹配,即贪婪匹配由于你正则中最后一个(%d-)后面没有任何东西了,那这个-进行了最短匹配,即什么都不匹配,所以没有捕获到1999,而加上$后,由于有了结尾标识位,-就必须匹配1999才能使整个正则匹配通过,所以就捕获了1999,或者你可以把最后个-换成*,也可以捕获1999的