[問題] 反向表列的正規式?

作者: Uruzu (...)   2011-07-16 22:48:45
前言:
因為ctags沒有支援我正在用的程式語言(systemverilog)
於是上google尋找解法,在當中找到了一個範例,可以讓ctags支援SV
但是那個例子不夠周全,只好自己動動手,加入適當的Regex,
好讓它看起來更完整一點
問題一:
typedef class Myclass;
typedef enum { .... } enum_type;
上面兩行是程式碼中經常出現的code
我想單純的用兩個Regex把這兩種分開來
^[ \t]*typedef[ \t]+.*[ \t]+([a-zA-Z_0-9]+)[ \t]*;
這會符合第一、二行code
^[ \t]*typedef[ \t]+enum[ \t]+.*[ \t]+([a-zA-Z_0-9]+)[ \t]*;
這會符合第二行code
要如何反向表列,才能使第一個Regex只會符合第一行而不包含第二行?
問題二:
有時候 code 會寫成這樣:
typedef enum { AAA,
BBB,
... } enum_type;
^[ \t]*typedef[ \t]+enum[ \t]+.*[ \t]+([a-zA-Z_0-9]+)[ \t]*;
紅色的部份該如何處理分行的部份比較好?
作者: blackkaku (black)   2011-07-17 22:10:00
^.*typedef[ \t]+c.+$^.*typedef[ \t]+enum(.+\n)*.+enum_type;$

Links booklink

Contact Us: admin [ a t ] ucptt.com