正则表达式的深入理解

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": "
发布了447 篇原创文章 · 获赞 153 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/ningyanggege/article/details/104776630