【每天几分钟,从零入门python编程的世界!】
我们对上节的代码稍作修改,把代表国家代码的模式部分和代表11位手机号数字的模式部分用小括号括起来,这样就相当于给通过正则表达式匹配模式找到的字符串进行了分组。
代码如下:
运行结果:
说明:
search()函数用于找到字符串中第一个匹配的字符串,上面的代码中message中86-16666666666、86-17777777777、86-18888888888都是匹配r'(\d\d)-(\d\d\d\d\d\d\d\d\d\d\d)'这个模式的字符串,但是我们看到match_object.group()打印出来只有86-16666666666,证明了search()是用于找到字符串message中第一个匹配的字符串。
group()返回匹配整个正则表达式(在这个例子中,正则表达式是r'(\d\d)-(\d\d\d\d\d\d\d\d\d\d\d)')的字符串,
group(1)就是返回匹配正则表达式(即r'(\d\d)-(\d\d\d\d\d\d\d\d\d\d\d)')的第一个分组(即(\d\d))的字符串,group(2)就是返回匹配正则表达式(即r'(\d\d)-(\d\d\d\d\d\d\d\d\d\d\d)')的第二个分组(即第二个括号括起来的部分(\d\d\d\d\d\d\d\d\d\d\d))的字符串。
还有一种情况,是要寻找的字符串中本身带有小括号,我们需要找的字符串中含有小括号,怎么办呢?
这种情况就在小括号前面加上一个\就行。
如下:
运行结果:
以上是关于把正则表达式匹配的字符串进行分组的介绍。
正则表达式的知识我们现在只介绍了很小的一点,其实它里面的知识点还是比较多的,我们一点一点来,我们先循序渐进,把简单的基本的或者说常用的东西先学会掌握了就好,其他的东西在实际应用中遇到了去查就好,死记硬背是不可取的,而且因为知识点比较多,死记硬背也很难记住。不要过多的浪费时间在记忆这些东西上。
我是时问新,欢迎关注我。跟我一起从零开始学习Python,每天花一点时间,开启python编程新世界的大门,领略新的风光,让人生多一种可能!