设为首页收藏本站

Crossin的编程教室

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

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

[复制链接]

0

主题

0

好友

8

积分

新手上路

Rank: 1

楼主
发表于 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
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

沙发
发表于 2019-6-6 08:38:40 |显示全部楼层
crossin先生 发表于 2019-6-5 14:04
规则前面要加 r,避免字符串转义
r"\bs*e\b"

这个转义感觉很难理解,加了r,不是查字符串里面的“\bs*e\b”,这样\b不就不能表示开头结尾了吗?转义后\b才表示开头结尾吧?
后来我把代码改了下:
import re
print(re.findall(r"\bs.e\b"," site  sea sue sweet see case sse ssee loses"))
运行结果:
D:\python\class_temp01\venv\Scripts\python.exe C:/Users/hp/.PyCharmCE2019.1/config/scratches/scratch.py
['sue', 'see', 'sse']

Process finished with exit code 0
为什么没有site呢?
回复

使用道具 举报

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

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

GMT+8, 2024-5-4 21:23 , Processed in 0.016282 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部