Java Regexp讨论

Ser*_*giu 0 java regex

我有这样的文字:

executeRule(document, 'SendEmail', [
    'emailAddress':'EMAIL(john@yahoo.com)',
    'subject':'Test',
    'text':'Test',
    'defaultText':'Test']
);
Run Code Online (Sandbox Code Playgroud)

我需要用regexp解析它以获取executeRule的参数.

目前我的regexp看起来像这样(java):

List<String> partialRules = new ArrayList<String>();
        List<String> rules = new ArrayList<String>();
        Pattern p = Pattern.compile("executeRule\\(\\s*\\w+,\\s*'(\\w+)'\\s*,\\.*");
Run Code Online (Sandbox Code Playgroud)

问题是我找不到与executeRule方法的第3个参数匹配的正则表达式.

任何帮助表示赞赏.

谢谢.

Bri*_*new 5

您是否考虑过不使用一个正则表达式来完成上述所有操作,而是编写一个简单的解析器来分割逗号,然后委托另一个解析器来解析每个以冒号分隔的对?构造/调试可能更容易(当然,取决于您是否允许在每个文本字符串中使用逗号).

如果您选择扩展上面的语法,那么这可能比一个(可能相当大的)正则表达式更具可扩展性.