python中字符串前面加上r表示原生字符串
与大多数编程语言相同,正则表达式
- 比如复制的路径都是
\
,但是Python支持识别/
。要么用replace替换要么就在这个字符串前面加个r
在python正则表达式中第一个\代表转意不是反斜杠
如果要匹配出一个\
**
就需要两个\\
第二个代表\
本身
**例如:
import re
f=re.match('.','\\')
if f:
print(f.group())
else:
print('匹配失败')
如果要匹配两个\
就需要四个\\\\
**
打一个\或者三个\是错误的 会报错 因为是转义符 后面要跟内容
**有一个\后面就要跟转意的符号 单字符匹配的是\加后面的一个字符
匹配方法:
首先要引入模块
import re
re.match()能够匹配出xxx字符串
例如:
f=re.match('你要查找的字符串里的内容给出条件','字符串')
输出时` print(f.group())` 才能输出你找的内容
字符 | 功能 |
---|---|
. | 匹配任意一个字符(除了\n) |
[] | 匹配[]中列举的字符 如([0-9]表示0-9的数字,[0-9a-z_]表示可匹配范围是数字0-9,字母a-z还有下划线 |
\d | 匹配数字 即0-9 |
\D | 匹配非数字 |
\s | 匹配空白 即空白,tab键 |
\S | 匹配非空白 |
\w | 匹配单词字符,即a-z,A-Z,0-9,_ |
\W | 匹配非字符 如@,#,。 |
上面这些一个只能匹配一个字符,匹配多个就要重复写**
**例如要匹配出123 就要写\d\d\d
f=re.match('\d\d\d','1234')
print(f.group())
匹配分组
字符 | 功能 |
---|---|
** | ** |
**(a | b)** |
例如:
import re
f=re.match('(1|2)','12')
print(f.group())
结果为1
左边的为先
匹配开头结尾
字符 | 功能 |
---|---|
^ | 匹配字符串开头 |
$ | 匹配字符串结尾 |
例如:
匹配出开头是html,结尾是.com的字符串
a=['html:baidu@.com','html:123@.sdr','httlbaidu@.com']
import re
for x in a:
f=re.match('^html.[\w]*@.com$',x)
if f:
print(f.group())
else:
print('错误')
结果是:
html:baidu@.com
错误
错误
当你要查找字符串以什么结尾时,前面都要有相应的匹配方式,不然会查找失败
重复方法
字符 | 功能 |
---|---|
***** | 匹配签一个字符出现0次或无限次,即可有可无 |
+ | 匹配前一个字符出现1次或无限次,至少有一次 |
? | 匹配签一个字符出现1次或者0次,要么有一次,要么有0次 |
{m} | 匹配签一个字符出现m次 |
{m,n} | ** 匹配签一个字符出现从m次到n次** |
import re
f=re.match('\d{3}','1234')
print(f.group()) 结果为123