在python中,用正则表达式提取多层括号中最外层括号包含的内容
生活随笔
收集整理的這篇文章主要介紹了
在python中,用正则表达式提取多层括号中最外层括号包含的内容
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
提取多層括號中最外層括號包含的內容有幾種方式,那么用正則表達式該怎么實現呢?
在python中,用正則表達式提取多層括號中最外層括號包含的內容
比如有一個字符串 :
學習python中有什么不懂的地方,小編這里推薦加小編的python學習群:895,817, 687
有任何不懂的都可以在里面交流,還有很好的視頻教程pdf學習資料,大家一起學習交流!
我想要提取
.CPU_1(f1), .CPU0(t0), .CPU1(t1), .CPU2(t2), .CPU3(t3)
這些內容,那么如何實現呢?
還有的一種情況是對于
a(bc(d)ef)g(h(i)(j)k)這段字符串要提取出
bc(d)ef 和 h(i)(j)k 兩個字串,所以不能用貪婪匹配。
用棧可以實現,但想知道有沒有用正則表達式更方便的辦法。
問題分析
不規則嵌套結構的分析
最好還是用棧
如果已經確定嵌套的結構
才可以考慮使用正則
先用貪婪取出整體的數據
然后對數據規劃出相似的結構
第一個很簡單就不用說了
第二個可以寫成這樣
(?: # 相似結構的分組\w* # 括號前可能存在的內容\( # 左括號[^()]+ # 非括號內容\) # 右括號 )+ # 多個相似的結構 \w* # 剩余的沒有括號的內容需要注意的是正則在這樣的條件下可用性并不高
因為嵌套結構如果改變了
就得修改或重新編寫
唯一能通用的是遞歸結構(比如回文)
但正則的遞歸用法也只有PHP等少數語言支持
所以在Python中還是自己寫算法好一點
總結
以上是生活随笔為你收集整理的在python中,用正则表达式提取多层括号中最外层括号包含的内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python代码有时候在命令行下和Pyt
- 下一篇: 太好了,一分钟带你分清Python的模块