如何用正则表达式表示C语言的变量定义

怎么用正则表达式表示C语言的变量定义?
用lex做词法分析器,但不是很清楚怎么表示C语言的变量定义,以字母或_开头,可以接字母、数字和_。我这样写有没有问题:([a-z]|[A-Z]| "_ ")([a-z]|[A-Z]|[0-9]| "_ ")+

------解决方案--------------------
后面那个“+”应该改成“*”吧?
另外,下划线也不需双引号引起来啊。
------解决方案--------------------
[a-zA-Z_][a-zA-Z0-9_]*