设为首页收藏本站

Crossin的编程教室

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

【Python 第58课】 正则表达式(4)

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

34#
发表于 2016-2-24 11:26:03 |只看该作者
catherinemic 发表于 2016-2-24 10:56
如果不加中括号,x后还有?表示连续0-1次,0次的话不就表示可以没有x吗?

sorry,我这里搞错了,的确不用加[]也是一样的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

33#
发表于 2016-2-24 10:56:00 |只看该作者
crossin先生 发表于 2016-2-22 22:58
中括号表示可选,如果不加,那就必须要有x

如果不加中括号,x后还有?表示连续0-1次,0次的话不就表示可以没有x吗?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

32#
发表于 2016-2-22 22:58:16 |只看该作者
catherinemic 发表于 2016-2-22 20:09
^1\d*[x]?
以1开头的一串数字,数字结尾有字母x,也可以没有。有的话就带上x。

中括号表示可选,如果不加,那就必须要有x
===================
更正:这里中括号加不加效果是一样的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

31#
发表于 2016-2-22 22:54:37 |只看该作者
catherinemic 发表于 2016-2-22 20:09
^1\d*[x]?
以1开头的一串数字,数字结尾有字母x,也可以没有。有的话就带上x。

中括号是可选,不括起来就一定得有x
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

30#
发表于 2016-2-22 20:09:32 |只看该作者
^1\d*[x]?
以1开头的一串数字,数字结尾有字母x,也可以没有。有的话就带上x。

crossin老师,复习正则表达式的时候发现这个地方又有问题了,为什么x要用中括号括起来呢,直接^1\d*x?可以吗?
回复

使用道具 举报

0

主题

1

好友

61

积分

注册会员

Rank: 2

29#
发表于 2016-2-4 16:01:30 |只看该作者
我看你们都是写的一行
:)
我却写的是三个,然后or的

m1 = re.findall(r'\(\d{3,4}\)\d{8}',text3)     #匹配括号的话用\(和\)  此句话匹配(0513)85602495
    m2 = re.findall(r'\d{3,4}\-\d{8}',text3)
    m3 = re.findall(r'\d{3,4}\s\d{8}',text3)
   
    if m1 or m2 or m3:
        print m1
        print "\n"
        print m2
        print "\n"
        print m3
这样写不好吗,大神们
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

28#
发表于 2016-2-4 12:05:18 |只看该作者
本帖最后由 catherinemic 于 2016-2-4 12:11 编辑

r'\(?[01]\d{2}[)-]?\d\s?\d{7,8}'
回复

使用道具 举报

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

27#
发表于 2016-1-8 02:19:49 |只看该作者
最后放一下自己的版本

[(]?\d{3}[)-]?[\d]?[ ]?\d{7,8}
回复

使用道具 举报

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

26#
发表于 2016-1-8 02:05:59 |只看该作者
本帖最后由 周末晒被子 于 2016-1-8 02:21 编辑
michael 发表于 2013-10-2 00:36
\(?0\d{2,3}[)-]?\d{7,8}

这个正则会读不出第4个号码,因为忘记加上空格符了。
回复

使用道具 举报

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

25#
发表于 2016-1-8 01:54:07 |只看该作者
脑子有音乐 发表于 2014-7-3 15:20
m = "(021)88776543\n010-55667890\n02584453362\n0571 66345673"
n=re.findall(r"\S{4,5}[ ]?\d*",m)
prin ...

哈哈,这种写法真任性~

但是使用场景比较局限。
回复

使用道具 举报

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

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

GMT+8, 2024-6-2 19:01 , Processed in 0.024921 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部