以逗號分隔的正規表示式 再見,正規表示式

2021-10-11 14:14:16 字數 976 閱讀 1299

寫過正規表示式的人都知道,正規表示式入門不難,寫起來也容易。

但是正規表示式幾乎沒有可讀性可言,維護起來,真的會讓人抓狂,別以為這段正則是你寫的就可以駕馭它,過個乙個月你可能就不認識它了。

完全可以說,天下苦正則久矣。

今天給你介紹乙個好東西,可以讓你擺脫正則的噩夢,那就是 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 有兩位小數的...