Regex AS3正则表达式,作为或组中的一个值进行检索

Regex AS3正则表达式,作为或组中的一个值进行检索,regex,actionscript-3,regex-group,Regex,Actionscript 3,Regex Group,昨晚我决定学习regex,以便创建一个“测试”脚本解析器,我已经成功地在变量方面做到了:) 这是我用来解析变量的AS3 regexp(不确定是否可以简化,但这是我想到的): 解析的变量采用以下格式(示例1): 或者。。(例2): 问题在于分组,我不知道如何正确地使用这个词,但这是我的regexp输出,例如作为数组的示例1 [1]=ReferenceTestVariable, [2]=Hello World, [3]= 这是示例2的输出: >TestVariable2 = >Ref

昨晚我决定学习regex,以便创建一个“测试”脚本解析器,我已经成功地在变量方面做到了:)

这是我用来解析变量的AS3 regexp(不确定是否可以简化,但这是我想到的):

解析的变量采用以下格式(示例1):

或者。。(例2):

问题在于分组,我不知道如何正确地使用这个词,但这是我的regexp输出,例如作为数组的示例1

 [1]=ReferenceTestVariable, [2]=Hello World, [3]=
这是示例2的输出:

>TestVariable2 = >ReferenceTestVariable
 [1]=TestVariable2, [2]=, [3]=ReferenceTestVariable
=
之后,我如何修改group操作符,使其使索引[2]和[3]连接起来,因为索引2和3都是变量存储的值?另外,我将如何修改regexp以允许以下内容:

>Test = "String", >Referencevariable, "Another String", "More strings", >Variable2

我认为这应该做到:

/\s*>(\w+)\s*=\s*(".*?"|>\w+)/gsm
索引[2]
在案例1中将有引号,或者在案例2中以
开头

第二种方法是:

/\s*>(\w+)\s*=\s*((?:(?:".*?"|>\w+)\s*,\s*)*(?:".*?"|>\w+))/gsm
但是,执行此操作时,所有以逗号分隔的值将一起出现在
索引[1]
中。正则表达式引擎通常不提供一种方法来分别获得由
*
+
匹配的每个值


您不能将来自不同备选方案的组组合在一起。你只需要让你的脚本检查哪一个是非空的并使用它。谢谢Barmar,我不知道。这就是我目前正在做的,我认为用regexp本身可以简化它。但是,如果我想将
Test
的所有值存储到一个数组中,无论它存储的是字符串还是引用,我将如何执行上一个示例?对于示例1中
index[2]
中的引号,您是否同意?这是我能看到的将它们组合在一起的唯一方法。顺便说一句,没有必要在字符集中包含
\t
\n
<代码>\s包括所有类型的空白,包括制表符和换行符。我不知道谢谢你的提示,我会记住它并编辑我的regexp,使它看起来更干净:)我想包含引号是可以的,因为它允许我区分字符串和引用,并可能在程序本身中设置一个标志。这应该用一点简单的字符串来完成操纵此外,任何做最后一点的想法或方法都将是额外的奖励!谢谢你的帮助,巴玛:)
/\s*>(\w+)\s*=\s*(".*?"|>\w+)/gsm
/\s*>(\w+)\s*=\s*((?:(?:".*?"|>\w+)\s*,\s*)*(?:".*?"|>\w+))/gsm