设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第59课】 正则表达式(5)

[复制链接]

0

主题

0

好友

22

积分

新手上路

Rank: 1

楼主
发表于 2019-5-17 17:07:57 |显示全部楼层
本帖最后由 jaxon 于 2019-5-17 17:12 编辑

import re
text = "(021)88776543和规范化和010-55667890规范化个02584453362广发华福0571 66345673个回合6565,UUID"

n = re.findall(r"[\(0]\d{2,3}\D{0,1}\d{8}", text)
if n:
    #print(m)
    print(n)
else:
    print('not match')
   
先生好,这是我自己想的课后练习答案,能正确输出所有号码,
['(021)88776543', '010-55667890', '02584453362', '0571 66345673']
但是改为n = re.findall(r"^[\(0]\d{2,3}\D{0,1}\d{8}", text)
只能输出第一个号码
['(021)88776543']
改为n = re.findall(r"^[\(0]\d{2,3}\D{0,1}\d{8}$", text)
输出not match
不太懂这个^和$的用法。
回复

使用道具 举报

0

主题

0

好友

22

积分

新手上路

Rank: 1

沙发
发表于 2019-5-17 17:37:26 |显示全部楼层
jaxon 发表于 2019-5-17 17:07
import re
text = "(021)88776543和规范化和010-55667890规范化个02584453362广发华福0571 66345673个回合6 ...

^表示整个字符串必须以给定的格式开头,否则就无匹配
$表示字符串必须以给定的格式结尾,否则就无匹配
^,$一起用表示整个字符串就是给定的格式
不知道对不对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-4 02:18 , Processed in 0.018285 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部