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

Crossin的编程教室

 找回密码
 立即加入
查看: 4849|回复: 5

56课课后习题

[复制链接]

3

主题

0

好友

15

积分

新手上路

Rank: 1

发表于 2016-10-5 11:41:15 |显示全部楼层
答案是\bs\S*?e\b
应该是不用r的对吧

但是在我的运行中,r"\bs\S*?e\b"显示正确答案而“\bs\S*?e\b”显示no match
不应该r是使得后面的字符串无转义保持原样吗?
我是python3.5是否有不同?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-10-5 21:21:41 |显示全部楼层
不加r就被转义了啊,你把字符串print出来看有没有被转
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

发表于 2016-11-25 23:02:04 |显示全部楼层
我发现我也有同样的问题。。
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-11-26 14:23:15 |显示全部楼层
ebcfd 发表于 2016-11-25 23:02
我发现我也有同样的问题。。

\b是会被转义的
  1. >>> print "\bs\S*?e\b"
  2. s\S*?e
复制代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

130

积分

注册会员

Rank: 2

发表于 2019-10-6 02:40:51 |显示全部楼层
本帖最后由 delapi 于 2019-10-6 04:47 编辑

终于搞懂了,\bs\S*?e\b表示的是在文本中搜索一个回退符+s\S*?e+一个回退符,回退符\x08本身是占位置的,而不是我想的直接删除前面的字母

--------------------------------------------------------------------

我有点不太理解这个,如果说r"\bs\S*?e\b"这个正确可以理解,因为他先保证不转义,然后到正则表达时再转义。
可“\bs\S*?e\b”即便是在正则表达拿到规则前就转义了,可是用这个s\S*?e作为规则也不应该是no match啊(我试了m = re.findall(r's\S*?e', text)是可以搜到结果['site', 'se', 'sue', 'swe', 'se', 'se', 'sse', 'sse', 'se']的 )
我刚刚试了一下print(‘\bs\S*?e\b’)得到的并不是s\S*?e而是s\S*?(其实有点奇怪的是为什么S前面的反斜杠没有消去),我以为我搞懂了因为在正则表达之前转义\b会用python的规则当成回退符而非单词边界,可是按这个道理:
1.我在\b的前面随便输入一个新的字符(比如我试了‘a\bs\S*?ea\b'和‘\bs\S*?ea\b)应该就可以得到结果,但还是no match。
2.我试了m = re.findall(r's\S*?', text),也可以得到结果['s', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's']而非no match
所以我现在确实被搞糊涂了
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2019-10-6 16:09:03 |显示全部楼层
delapi 发表于 2019-10-6 02:40
终于搞懂了,\bs\S*?e\b表示的是在文本中搜索一个回退符+s\S*?e+一个回退符,回退符\x08本身是占位置的,而 ...

是的,就是你理解的这样
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-3-29 19:14 , Processed in 0.017476 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部