@@@@module@ANDGATE@(
@@ANDGATE@gate1@(.A1(A1),@.A2(A2),@.Z(Z));
@@@@module@ORGATE@(
@@ANDGATE@gate1@(.A1(A1),@.A2(A2),@.Z(Z));
@@ORGATE@gate1@(.A1(A1),@.A2(A2),@.Z(Z));
原本打算使用下面的 Regex 來取出各 cell init instance 那行。
^\s+[^m].*GATE
但因為 \s+ 不會抓最大數量,故 @@@@module 前面 4 個字元也會符合 ^\s+[^m],對正規表示來說前 3 個空白符合 \s+,第 4 個空白符合 [^m] (應該說 Regex 原本用 4 個空白匹配 \s+,但因為發現這樣解讀這行就不滿足了,Regex 為了要盡可能做匹配,故使用了回溯技巧)。
目前還不知道要如何使用 [^m] 這種否定語句,只能使用 ^\s+(AND|OR) 來抓出我要的,但前提是我必須知道所有 case?
一個有 600 多萬行的文字檔,用正面表列確實沒那麼好用,我的正規表示法功力還有待加強XD
沒有留言:
張貼留言