如何构造正则表达式来解析C枚举?
我试过的枚举看起来像
我试过的枚举看起来像
enum Temperature { C = 0,F=1,// some elements are commented R,// most elements are not gived a value K // sometimes the last element is succeeded by a comma } temperature; // different indent style is used enum Depth { m = 0,ft = 1,} depth;
我尝试了几个简单的模式,但没有一个足以捕捉上述所有情况.
任何可以帮助我的regexp向导?
编辑:澄清,我想要名称和价值,例如C和0.
解决方法
这很有挑战性:)下面是我能想到的最好的.假设只给出{和}之间的文本,它会捕获所有名称和相应的值:
/(\w+)\s*(?:=\s*(\d+)|)\s*,?\s*(?:(?:\n|$)|\/\/.*?(?:\n|$)|)/