设为首页收藏本站

Crossin的编程教室

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

【Python 第57课】 正则表达式(3)

[复制链接]

0

主题

1

好友

61

积分

注册会员

Rank: 2

21#
发表于 2016-2-4 14:21:54 |只看该作者
来交这堂课的作业啦
m = re.findall(r'1\d{10}',text2)            #匹配手机号是不是这样写的,crossing先生
回复

使用道具 举报

0

主题

0

好友

35

积分

新手上路

Rank: 1

22#
发表于 2016-11-15 19:41:32 |只看该作者
本帖最后由 yunzhou 于 2016-11-15 19:44 编辑

import re
text = "12222222222,14444444444,15555555555,16666666666666,0111111111111,125465245625"
m = re.findall(r"\d{12}",text)
if m:
    print m
else:
    print 'not match'


为什么大于12位的都要输出呢,不是应该只输出12位的吗?
请问哪里错了呢?
而且如果m = re.findall(r"1\d{12}",text)
只会输出一个14位的16这一串数字
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

23#
发表于 2016-11-16 15:08:24 |只看该作者
yunzhou 发表于 2016-11-15 19:41
import re
text = "12222222222,14444444444,15555555555,16666666666666,0111111111111,125465245625"
m = ...

它匹配了其中的12位啊,你数数看输出的位数(用这种测试用例很容易看花眼的……)

你如果是要判断一整段正好12位的数字,应该前后加上 \b
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

24#
发表于 2016-12-2 19:57:52 |只看该作者
assafasf
回复

使用道具 举报

0

主题

0

好友

96

积分

注册会员

Rank: 2

25#
发表于 2017-1-13 16:58:13 |只看该作者
import re
f = open('shouji.txt')
s = f.read()
print s
m = re.findall(r'1\d{10}',s)
for i in m:
    print i
f.close


aasasaf.jpg (98.62 KB, 下载次数: 519)

aasasaf.jpg

回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

26#
发表于 2018-7-27 15:35:41 |只看该作者
老师,条件都放这么宽松了,为什么一个数字都搜索不出来~~

正则式.png (2.6 KB, 下载次数: 527)

正则式.png

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

27#
发表于 2018-7-28 01:03:30 |只看该作者
shan91 发表于 2018-7-27 15:35
老师,条件都放这么宽松了,为什么一个数字都搜索不出来~~

你的text是 ‘b’ 这个字符啊……

你直接用b这个变量就好了,何必多此一举,还弄错了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

30

积分

新手上路

Rank: 1

28#
发表于 2019-3-28 22:21:54 |只看该作者
\bs.\S*e\b
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

29#
发表于 2019-6-5 10:54:27 |只看该作者
请教一个问题,问什么我用Pyhton3,识别不了\b、\d呢,IDE是Pycharm,代码如下:
import re
print(re.findall("s\S*?e","site sea sue sweet see case sse ssee loses"))
print(re.findall("s\S*e","site sea sue sweet see case sse ssee loses"))
print(re.findall("\bs*e\b"," site sea sue sweet see case sse ssee loses"))
print(re.findall("/d{5}","1234 146347 12345 64432 132526"))
运行结果:
D:\python\class_temp01\venv\Scripts\python.exe C:/Users/hp/.PyCharmCE2019.1/config/scratches/scratch.py
['site', 'se', 'sue', 'swe', 'se', 'se', 'sse', 'sse', 'se']
['site', 'se', 'sue', 'swee', 'see', 'se', 'sse', 'ssee', 'se']
[]
[]

Process finished with exit code 0
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

30#
发表于 2019-6-5 14:04:18 |只看该作者
pigcare 发表于 2019-6-5 10:54
请教一个问题,问什么我用Pyhton3,识别不了\b、\d呢,IDE是Pycharm,代码如下:
import re
print(re.finda ...

规则前面要加 r,避免字符串转义
r"\bs*e\b"
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-11-24 07:14 , Processed in 0.018887 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部