作者Uruzu (...)
看板RegExp
标题[问题] 反向表列的正规式?
时间Sat Jul 16 22:48:45 2011
前言:
因为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
1F:推 blackkaku:^.*typedef[ \t]+c.+$ 07/17 22:10
2F:→ blackkaku:^.*typedef[ \t]+enum(.+\n)*.+enum_type;$ 07/17 22:10