看板 RegExp 關於我們 聯絡資訊
前言: 因為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]*; 紅色的部份該如何處理分行的部份比較好? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.76.252
blackkaku:^.*typedef[ \t]+c.+$ 07/17 22:10
blackkaku:^.*typedef[ \t]+enum(.+\n)*.+enum_type;$ 07/17 22:10