python正则匹配括号内任意字符,python 正则匹配 获取括号内字符
一、需求
* 提取字典中的【】內的字符,生成可以導入到五筆詞庫中的txt文件。
原文件:
生成后的結果:
實現方式
前言
因為正則表達式語法很難讀,因此本次程序以多次的方式來講解。
一、提取【】內內容import re
with open("XDHYCD7th.txt","r",encoding="utf-8") as f:
text = f.read()
words = re.findall("【.+】", text)
括號中的 . 表示一個字符的通配符,可以用來表示任意字符。
+表示字符數量,數量為一個以上
【.+】表示匹配所有括號內的字符,括號內字符至少有一個或以上。 比如【啊】或者【阿公】就會被匹配進去,而【】就不會被匹配進去
效果:
二、去除【】號
只要用()把你想要的部分框起來就可以。比如? 【(匹配的字符)】 ,最后出現的就是 匹配的字符
代碼:
import re
with open("XDHYCD7th.txt","r",encoding="utf-8") as f:
text = f.read()
words = re.findall("【(.+)】", text)
【.+】 =》 【(.+)】
效果:
三、懶惰匹配
最后結果如上,紅框里面有哪里不對?查看原文:【阿蘭若】ālánrě〈名〉見809頁【蘭若】。
原來【阿蘭若】的前括號 和 【蘭若】 的 后括號 匹配了。這是因為這里使用的是貪婪模式,換句話說,
【1】【2】 匹配出來的不會是? 1? 2 兩個字符,而是: 1】【2
我們要把它改成懶惰模式:
代碼:import re
with open("XDHYCD7th.txt","r",encoding="utf-8") as f:
text = f.read()
words = re.findall("【(.+?)】", text)
【(.+)】=》【(.+?)】
那個問號表示的就是懶惰模式
結果:
總結
以上是生活随笔為你收集整理的python正则匹配括号内任意字符,python 正则匹配 获取括号内字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2023最新超好看的二次元透明网站登录页
- 下一篇: 国外PPT简历模板,免费领取