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
s = "1abc23def45"
print(str(re.subn(r"\w", "hi", s)[1]))
print(str(re.subn(r"\w", "hi", s)))
结果:
11
('hihihihihihihihihihihi', 11)

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

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

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

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

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

1,正则表达式:

2、系统路径

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-17
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],书上没有说明啊

本回答被提问者和网友采纳
第2个回答  2018-06-18
re是python里的正则表达式模块。findall是其中一个方法,用来按照提供的正则表达式,去匹配文本中的所有符合条件的字符串。返回结果是一个包含所有匹配的list。
[1] 就是列表中的[1]啊
第3个回答  2018-03-16
1,表示匹配的值第一个字符串
第4个回答  2018-01-23
延伸阅读:python的 内建函数 和 subprocess 。此文是本系列的第三篇文章了,和之前一样,内容出自官方文档,但是会有自己的理解,并非单纯的翻译。所以,如果我理解有误,欢迎指正,谢谢。
本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮。
正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义。这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解。比如,要匹配一个反斜杆本身,你也许要用'\\\\'来做为正则表达式的字符串,因为正则表达式要是\\,而字符串里,每个反斜杆都要写成\\。
你也可以在字符串前加上 r 这个前缀来避免部分疑惑,因为 r 开头的python字符串是 raw 字符串,所以里面的所有字符都不会被转义,比如r'\n'这个字符串就是一个反斜杆加上一字母n,而'\n'我们知道这是个换行符。因此,上面的'\\\\'你也可以写成r'\\',这样,应该就好理解很多了。可以看下面这段:
相似回答