于是开始想办法彻底搞清楚这个差别的原因所在。首先要读懂这几行代码,而这一行代码的关键在于这一句:匹配的正则表达式是(.*)are(.*?).*得到的结果是:。那么这是否就意味着?这个符号到底有什么用呢仔细想来这个说法并不是很严谨。放到第二个括号内,就什么也提取不到,同时导致group中匹配的字符到Cats are就截止了。令人感到奇怪的是,如果将上面的代码改成也就是仅仅将?改为+,虽然能成功匹配整个line但group中没有内容,如果把+放到第二个括号中就会产生报错,匹配失败。具体的可能要研究代码本身的机理了,暂且搁置。还有一个问题就是如何达到样例本身想要的,用第二个括号提取单个单词的目的。如果单单考虑这个例子的话,把原本第二个括号中的?
暂无评论