我在AS3 / Flex中有一个很长的正则表达式,可以找到几个单词中的一个。正则表达式如下:word|wordup|wordly|wordster
[当我执行“ wordup wordter!”时。match(regex),我得到的是未定义的匹配项!返回的匹配数组具有匹配项:
[0] 'wordup'
[1] undefined
array length: 2
AS3的分组匹配中是否存在已知错误?是什么使某些单词出现在返回的匹配数组中,而其他单词则返回未定义状态?
我在正则表达式中寻找了错误的不正确字符,并多次检查了正则表达式。
如果我只是搜索'wordup',则会得到一个匹配数组,长度为1,内容正确。如果我仅搜索“ wordster”,则会得到长度为1的数组,并且match [0]再次未定义。
[经过大量实验...对于AS3,我的正则表达式太长了我的实际正则表达式使用分组,并具有可选的括号:
(?:\(?(\bword\b)\)?|\(?(\bwordup\b)\)?|
...依此类推,共51个字。
简化为:(?:\bword\b|\bwordup\b|
以某种方式使匹配组工作正常,即使我没有圆括号通常也不需要定义组。