用于解析方法参数的模式

时间:2014-07-30 14:34:32

标签: regex scala

我想将参数解析为对Messages对象的调用。参数是字符串(带引号)或变量名称或带有变量连接的字符串:

实施例

  1. Messages("some string")
  2. Messages(someVariableName)
  3. Messages("string"+someVariable)
  4. 期望的结果

    1. some string(注意没有引号)
    2. someVariableName
    3. "string"+someVariable(字符串周围有引号)
    4. 正则表达式看起来如何给我这些结果?

      到目前为止,我已尝试Messages\("?([^"]*)"?\)适用于第一个和第二个示例但不适用于第三个

2 个答案:

答案 0 :(得分:0)

您可以尝试使用逻辑OR运算符

的以下正则表达式
Messages\("(.*?)(?="\))|Messages\(([^)]*)

DEMO

<强>解释

  • Messages\("(.*?)(?="\))只有在Messages("
  • 之后,才会捕获字符串")之后的所有字符
  • |逻辑OR运算符。
  • Messages\(([^)]*)从剩余的字符串中,它会捕获字符串Messages("之后的所有字符,直到达到)

答案 1 :(得分:0)

Messages\("([^"]*)"\)|Messages\((.*)\)应该做的伎俩

相关问题