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": "