正则表达式的深入理解
Q1、字符串與正則表達(dá)式字符串的區(qū)別?
從計(jì)算機(jī)的執(zhí)行角度來(lái)看:首先是自己定義的字符串被string類讀取解析放到內(nèi)存中,可以通過(guò)print(str)查看;然后傳遞給re類進(jìn)行讀取和解析。從機(jī)制上來(lái)看就會(huì)讓他們有所區(qū)別;
這里的案例主要分兩種情況需要注意:
第一種:字符串和re相同的通配符含義;比如說(shuō)\n \r \t
比如傳遞一個(gè)換行符給re類;那么就需要在字符串中輸入\\n,那么這樣string類解析得到的是一個(gè)\n字符串,這個(gè)傳遞給re類就會(huì)當(dāng)作正確解析。
ss = "\\n";或者 ss = r“\n";這樣re類讀取到的就是\n的通配符。
第二種:字符串和re不相同的通配符含義;比如說(shuō)re中的”? ?[? ? “符號(hào)
在這種情況下,對(duì)字符串而言就不需要考慮轉(zhuǎn)義符的問(wèn)題;比如說(shuō)加"r"或者加個(gè)斜杠”\“;
如果說(shuō)僅僅匹配”\“字符串,而不是通配符;那么在字符串中可以直接輸入
ss = "\[";字符串處理后輸出和輸入是一樣的;re類會(huì)將"\["當(dāng)作一個(gè)正常的字符而非通配符"["
?
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": "?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的正则表达式的深入理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 注意力机制在softmax时需要除以一个
- 下一篇: linux下打开大文件且搜索字符串的方法