正则表达式要求:它应匹配以下模式

use*_*143 1 java regex

有效:

  1. ((int)10)
  2. (int)10
  3. ((char)((x+y)&1))
  4. ((int *)1)

无效:

  1. (a-b)
  2. (a&=b)
  3. a
  4. ((a))

aio*_*obe 8

(平衡的)带括号的表达式的语言不规则,即,您不能编写匹配这些字符串的正则表达式.

参见SO问题:为什么正则表达式称为"常规"表达式维基百科:常规语言.

您需要使用更强大的解析技术,例如CFG,例如ANTLR.

您可以从以下内容开始:

CastedExpression ::= Cast Expression | LPAR CastedExpression RPAR
Cast             ::= LPAR Type RPAR
Expression       ::= Sum | Product | Litteral | LPAR Expression RPAR | ...
Type             ::= char | int | Type ASTERISK | ...
Run Code Online (Sandbox Code Playgroud)

(如果您发现任何明显的改进,请随意编辑上面的语法).