正则表达式的深入理解

Q1、字符串与正则表达式字符串的区别?

从计算机的执行角度来看:首先是自己定义的字符串被string类读取解析放到内存中,可以通过print(str)查看;然后传递给re类进行读取和解析。从机制上来看就会让他们有所区别;

这里的案例主要分两种情况需要注意:

第一种:字符串和re相同的通配符含义;比如说\n \r \t

比如传递一个换行符给re类;那么就需要在字符串中输入\\n,那么这样string类解析得到的是一个\n字符串,这个传递给re类就会当作正确解析。

ss = "\\n";或者 ss = r“\n";这样re类读取到的就是\n的通配符。

第二种:字符串和re不相同的通配符含义;比如说re中的”   [    “符号

在这种情况下,对字符串而言就不需要考虑转义符的问题;比如说加"r"或者加个斜杠”\“;

如果说仅仅匹配”\“字符串,而不是通配符;那么在字符串中可以直接输入

ss = "\[";字符串处理后输出和输入是一样的;re类会将"\["当作一个正常的字符而非通配符"["

 

print(len(re.findall(r'"\[', web_json)))
print(len(re.findall('"\[', web_json)))
print(re.findall(r'"\[', web_json))
print(re.findall('"\[', web_json))
for i in re.finditer(r'"\[', web_json):
    print(web_json[i.span()[0]-10:i.span()[1]+10])

3
3
['"[', '"[', '"[']
['"[', '"[', '"[']
"x_input":"[{"name": "
y_output":"[{"name": "
"options":"[{"type": "

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值