寫過正規表示式的人都知道,正規表示式入門不難,寫起來也容易。
但是正規表示式幾乎沒有可讀性可言,維護起來,真的會讓人抓狂,別以為這段正則是你寫的就可以駕馭它,過個乙個月你可能就不認識它了。
完全可以說,天下苦正則久矣。
今天給你介紹乙個好東西,可以讓你擺脫正則的噩夢,那就是 python 中乙個非常冷門的庫 --parse
。
拿乙個最近使用 parse 的真實案例來舉例說明。
下面是 ovs 乙個條流表,現在我需要收集提取乙個虛擬機器(網口)裡有多少流量、多少包流經了這條流表。也就是每個 in_port 對應的 n_bytes、n_packets 的值 。
cookie=0x9816da8e872d717d, duration=298506.364s, table=0, n_packets=480, n_bytes=20160, priority=10,ip,in_port="tapbbdf080b-c2" actions=normal
如果是你,你會怎麼做呢?
先以逗號分隔開來,再以等號分隔取出值來?
你不防可以嘗試一下,寫出來的**應該和我想象的一樣,沒有一絲美感而言。
我來給你展示一下,我是怎麼做的?
從上面這個案例中,你應該能感受到 parse 對於解析規範的字串,是非常強大的。
parse 的結果只有兩種結果:
沒有匹配上,parse 的值為none
>>> parse("halo
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...
正規表示式 常用正規表示式
一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...