python正则表达式re.findall(r"\b\w+\b", s)中的r是什么意思?

re.findall(r"\b\w+\b",s)新手学习python,谢谢了。str(re.subn(r"\w","hi",s)[1])中的[1]有什么用啊?import... re.findall(r"\b\w+\b", s)
新手学习python,谢谢了。
str(re.subn(r"\w", "hi", s)[1])中的[1] 有什么用啊?
import re
s = "1abc23def45"
print(str(re.subn(r"\w", "hi", s)[1]))
print(str(re.subn(r"\w", "hi", s)))
结果:
11
('hihihihihihihihihihihi', 11)
展开
 我来答
程序员养大闸蟹
2018-06-17 · 自家的蟹塘,苏州阳澄湖蓝标大闸蟹养殖户
程序员养大闸蟹
采纳数:2362 获赞数:20622

向TA提问 私信TA
展开全部

在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '\' 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。

例:r"\n\n\n\n\n\n”

作用:声明后面的字符串是普通字符串

特殊字符串中含有:转义字符 \n \t 什么什么的

用途:一般用在 正则表达式、文件绝对地址

1,正则表达式:

2、系统路径

这样就不用专门的去处理引号之中的特殊字符了

cnbubble
2015-07-17 · TA获得超过2607个赞
知道大有可为答主
回答量:1990
采纳率:83%
帮助的人:765万
展开全部
Python中字符串前面加上 r 表示原生字符串,
与大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r"\\"表示。同样,匹配一个数字的"\\d"可以写成r"\d"。有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。
追问
谢谢, r 表示原生字符串我明白了。请问一下,下面程序中的"[1]"是什么作用啊?
import re
s = "1abc23def45"
print(str(re.subn(r"\w", "hi", s)[1])) #s后面的[1],书上没有说明啊
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lailongmen
2018-06-18 · TA获得超过227个赞
知道答主
回答量:125
采纳率:0%
帮助的人:42.4万
展开全部
re是python里的正则表达式模块。findall是其中一个方法,用来按照提供的正则表达式,去匹配文本中的所有符合条件的字符串。返回结果是一个包含所有匹配的list。
[1] 就是列表中的[1]啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小屁孩的春春
2018-03-16
知道答主
回答量:1
采纳率:0%
帮助的人:889
展开全部
1,表示匹配的值第一个字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钟桑扬
2018-01-23
知道答主
回答量:3
采纳率:0%
帮助的人:2653
展开全部
延伸阅读:python的 内建函数 和 subprocess 。此文是本系列的第三篇文章了,和之前一样,内容出自官方文档,但是会有自己的理解,并非单纯的翻译。所以,如果我理解有误,欢迎指正,谢谢。
本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮。
正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义。这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解。比如,要匹配一个反斜杆本身,你也许要用'\\\\'来做为正则表达式的字符串,因为正则表达式要是\\,而字符串里,每个反斜杆都要写成\\。
你也可以在字符串前加上 r 这个前缀来避免部分疑惑,因为 r 开头的python字符串是 raw 字符串,所以里面的所有字符都不会被转义,比如r'\n'这个字符串就是一个反斜杆加上一字母n,而'\n'我们知道这是个换行符。因此,上面的'\\\\'你也可以写成r'\\',这样,应该就好理解很多了。可以看下面这段:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式