正则表达式 - 由不在分组字符内的某个字符拆分

时间:2015-10-02 10:50:51

标签: java regex

我正在编写一个小型脚本引擎(作为游戏引擎的一部分),其中一部分需要解析字符串以获取某个对象。我已经有了正则表达式来识别所讨论的字符串是什么(字符串,变量,映射或数组/列表),但字符串连接是我被卡住的地方。这不是必需的,我想我可以写一个concat(),但我希望parse方法识别string + string

如果所有参数都是字符串或变量(例如'i like ' + 'pie'variable + 'string'variable + variable),这将很简单,但我想提供列表/数组和映射等数据类型。理想情况下,解析方法可以通过忽略某些加号来分割以下任何一行:

print parse("{var='value ' + ''}")
print parse("['value', x, x + y] + ' a string'")
print parse("function('arg ', 'another arg ' + 'concatenated')")

在第一个print中,+被完全忽略,因为它位于未加引号的花括号之间

在第二次打印中,第一个+被忽略,因为它位于未加引号的方括号之间,但第二个不是。

在第三个印刷品中,与第一个印刷品类似,+被忽略,因为它在未加引号的括号内

编辑: 如果我不是很清楚,正则表达式仅用于将文本拆分为字符串数组

我知道this答案有点相似,是一个很好的开始。但是我一直无法改变它而忽略{未加引号的)括号内的+和(())括号([]{}

如果它很重要,因为我知道每种语言都有不同的口味,我使用的是Java。

0 个答案:

没有答案