请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

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

[复制链接]

0

主题

0

好友

558

积分

高级会员

Rank: 4

发表于 2014-9-28 23:29:56 |显示全部楼层
先生,r'\bs\S*?e\b'这样可以,但是r'\bs.*?e\b'这样,遇到"sad (有个空格)see"是不是匹配出"sad see"?
学习,纯粹。
回复

使用道具 举报

0

主题

0

好友

32

积分

新手上路

Rank: 1

发表于 2014-12-19 11:14:48 |显示全部楼层
先生 您好
请问 如果要查找“/b” 内容 应该怎么,写?
谢谢~!
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2014-12-19 11:52:24 |显示全部楼层
r"/b"
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

发表于 2015-4-5 10:10:45 |显示全部楼层
老师,
import re
text = "Shirley  his"
m = re.findall(r'hi',text)
print m
出现的只有两个hi,而不是完整单词怎么办?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2015-4-5 13:51:07 |显示全部楼层
sukiak 发表于 2015-4-5 10:10
老师,
import re
text = "Shirley  his"

hi只能匹配到hi,如果你想匹配整个单词,得在前后加上匹配0~n个非空格字符的正则,如
\w*hi\w*
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

132

积分

注册会员

Rank: 2

发表于 2015-12-14 13:45:36 |显示全部楼层
get
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

发表于 2016-2-2 14:46:37 |显示全部楼层
Crossin老师,想问一下,既然r'\bhi'表示非转译的原始字符‘\bhi',但是为什么re.findall(r'\bhi', text)的结果是能找到匹配,而refindall('\bhi',text)找不到匹配呢?如果我想在一段话中找\bhi,又该怎样写正则表达式呢?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-2-2 23:00:49 |显示全部楼层
catherinemic 发表于 2016-2-2 14:46
Crossin老师,想问一下,既然r'\bhi'表示非转译的原始字符‘\bhi',但是为什么re.findall(r'\bhi', text)的 ...

直接写'\bhi',\b就被转义了。
找\bhi的话,要防止\b作为特殊元字符去匹配,所以需要用
r"\\bhi"
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

2

主题

0

好友

59

积分

注册会员

Rank: 2

发表于 2016-2-3 13:39:49 |显示全部楼层
Cross先生,为什么不能用^表示开头,$表示结尾,试了好多,输不出结果
  1. import re
  2. text = 'site sea sue sweet see case sse ssee loses'
  3. pattern = re.compile(r'\bs\S*?e\b')
  4. req = re.findall(pattern,text)
  5. print req
复制代码
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-2-3 22:27:27 |显示全部楼层
fangweiren 发表于 2016-2-3 13:39
Cross先生,为什么不能用^表示开头,$表示结尾,试了好多,输不出结果

^是表示整个字符串的开头,$是整个字符串的结尾,同时加了这两个,那除非整串完全匹配
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-3-29 02:26 , Processed in 0.017470 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部