我有这样的文字:
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个参数匹配的正则表达式.
任何帮助表示赞赏.
谢谢.
您是否考虑过不使用一个正则表达式来完成上述所有操作,而是编写一个简单的解析器来分割逗号,然后委托另一个解析器来解析每个以冒号分隔的对?构造/调试可能更容易(当然,取决于您是否允许在每个文本字符串中使用逗号).
如果您选择扩展上面的语法,那么这可能比一个(可能相当大的)正则表达式更具可扩展性.