设为首页收藏本站

Crossin的编程教室

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

【Python 第56课】 正则表达式(2)

[复制链接]

0

主题

0

好友

84

积分

注册会员

Rank: 2

11#
发表于 2013-9-21 20:01:32 |只看该作者
本帖最后由 Myk_cc 于 2013-9-21 20:07 编辑

同学在我电脑上使用的豌豆荚,自动保存了联系人,我将.vcf文件中的内容保存到文本文件中,然后用正则表达式将其中的电话号码提取出来。

请老师指点。
代码和图片在回复中


回复

使用道具 举报

0

主题

0

好友

84

积分

注册会员

Rank: 2

12#
发表于 2013-9-21 20:06:07 |只看该作者
本帖最后由 Myk_cc 于 2013-9-21 20:07 编辑
Myk_cc 发表于 2013-9-21 20:01
同学在我电脑上使用的豌豆荚,自动保存了联系人,我将.vcf文件中的内容保存到文本文件中,然后用正则表达式 ...
  1. #!/usr/bin/python

  2. import re

  3. f = open('file1.txt')
  4. s = f.read()
  5. str(s)
  6. m = re.findall(r"1.*?\n", s)
  7. f.close

  8. for i in m:
  9.     print i[0:10]
复制代码

QQ图片20130921195844.jpg (14.94 KB, 下载次数: 482)

QQ图片20130921195844.jpg

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

13#
发表于 2013-9-22 00:35:07 |只看该作者
Myk_cc 发表于 2013-9-21 20:06

不错的,赞一下现学现用的学习方式!
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

25

积分

新手上路

Rank: 1

14#
发表于 2013-9-23 15:24:23 |只看该作者
import re

text = 'site sea sue sweet see case sse ssee loses'
p = re.compile(r'\bs\w+e\b',re.X)
m = p.findall(text)
if m:
    print 'match!'
    print m
回复

使用道具 举报

0

主题

0

好友

389

积分

中级会员

Rank: 3Rank: 3

15#
发表于 2013-9-25 14:35:13 |只看该作者
神奇的正则表达式
回复

使用道具 举报

0

主题

0

好友

152

积分

注册会员

Rank: 2

16#
发表于 2013-10-2 00:24:54 |只看该作者
r'\bs\S*?e\b'
回复

使用道具 举报

1

主题

0

好友

98

积分

注册会员

Rank: 2

17#
发表于 2014-3-17 23:36:36 |只看该作者
  1. import re
  2. text1='site sea sue sweet see case sse ssee loses'
  3. w=text1.split(' ')
  4. h=str(w)
  5. n=re.findall(r'\bs.*?e\b',h)
  6. print n
复制代码
不用split的话  print结果中  sea sue  会连在一起。没有h=str(w)的话 又会报错TypeError: expected string or buffer
所以最终结果就是这样了,运行正确
回复

使用道具 举报

0

主题

0

好友

276

积分

中级会员

Rank: 3Rank: 3

18#
发表于 2014-5-17 14:52:39 |只看该作者
\bs\S.*?e\b和\bs.*?e\b输出结果一样的,请问是不是可以理解为这几个符号有优先级?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

19#
发表于 2014-5-18 15:10:53 |只看该作者
文心雕龙 发表于 2014-5-17 14:52
\bs\S.*?e\b和\bs.*?e\b输出结果一样的,请问是不是可以理解为这几个符号有优先级? ...

这两个不完全一样。
前面加了个\S,其实相当于是先匹配一个非空白字符,然后再匹配任意数量字符。
如果有"se",那么前者无法匹配,后者可以。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

36

积分

新手上路

Rank: 1

20#
发表于 2014-7-3 12:20:16 |只看该作者
\bs\w*e\b
回复

使用道具 举报

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

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

GMT+8, 2024-11-21 23:19 , Processed in 0.016206 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部