python的正則(一):簡單夠用的basic版
例如,下面的代碼,把所有的input替換成output:
1import re
2s = 'input wire a;input wire b;'
3result = re.sub(r'input', r'output', s, 0, re.S)
4print(result) # 'output wire a;output wire b;'
re.findall
因為python中的search()函數(shù)不如perl的=~ m/.../靈活,所以re中還提供了其它函數(shù)來增強(qiáng)功能,findall()便是其中一個。
顧名思義,findall就是查找所有的匹配,函數(shù)返回一個list。語法如下:
1import re
2result = re.findall(r'pattern', 'string', option)
例如,查找所有的輸入端口:
1import re
2s = 'input wire a;input wire b;'
3result = re.findall(r'input.*?;', s, re.S)
4print(result) #['input wire a;', 'input wire b;']
我們可以看到,findall()返回了所有輸入端口的列表。而search()呢?只返回第一個匹配結(jié)果。
re.其它函數(shù)
用dir(re)看看re模塊包定義了哪些函數(shù),如下:
1import re
2dir(re)
3# [..., 'compile', 'copyreg', 'enum', 'error', 'escape',
4 'findall', 'finditer', 'fullmatch', 'functools', 'match',
5 'purge', 'search', 'split', 'sre_compile', 'sre_parse',
6 'sub', 'subn', 'template']
大家可以用help(re.xxx)來查看幫助。
總結(jié)
到此,python正則的基本用法就介紹完畢了。只要我們在實際項目中靈活運用這些基本規(guī)則就可以了。
習(xí)題:
1. 利用上面介紹的正則基本規(guī)則,提取verilog module的端口。
要求:考慮verilog 2001 C風(fēng)格和和verilog95的傳統(tǒng)風(fēng)格。
2. 把verilog代碼中的高電平復(fù)位信號rst替換成低電平復(fù)位信號rst_n。
提示:除了復(fù)位名稱需要替換外,always中的復(fù)位posedge也需要同時替換成negedge;if(rst)需要替換成 if(!rst_n)。
3. 在第一題的基礎(chǔ)上,實現(xiàn)模塊實例化。
簡化一點,外部連線的名字和端口名相同。

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
即日-9.1立即下載>> 【限時下載】ADI中國三十周年感恩回饋助力企業(yè)升級!
-
10月23日立即報名>> Works With 開發(fā)者大會深圳站
-
11月27日立即報名>> 【工程師系列】汽車電子技術(shù)在線大會
-
精彩回顧立即查看>> 【在線研討會】解析安森美(onsemi)高精度與超低功耗CGM系統(tǒng)解決方案
-
精彩回顧立即查看>> 【在線會議】CAE優(yōu)化設(shè)計:醫(yī)療器械設(shè)計的應(yīng)用案例與方案解析
-
精彩回顧立即查看>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
推薦專題
- 1 傳魏建軍與賈躍亭合作,長城汽車出海美國
- 2 黃仁勛:與雷軍長期合作,共探AI智駕
- 3 阿里首位程序員,“掃地僧”多隆已離職
- 4 DeepSeek R2加持,中國AI與芯片產(chǎn)業(yè)迎來新一輪協(xié)同進(jìn)化
- 5 先進(jìn)算力新選擇 | 2025華為算力場景發(fā)布會暨北京xPN伙伴大會成功舉辦
- 6 六大國產(chǎn)大模型,誰是最強(qiáng)“金融分析師”?|錦緞評測
- 7 2025年第一支10倍股,來了!
- 8 募資39.85億元!寒武紀(jì)押注大模型芯片與軟件平臺
- 9 國內(nèi)免費版Deep Research上線,秘塔AI深度研究嘗試重塑知識工作范式
- 10 清華跑出具身智能獨角獸:給機(jī)器人安上眼睛和大腦,融資近20億