动态文本正则表达式之前的字符串,return 重复数组结果

string before dynamic text regexp, return repetitive array result

我试图在“_”之前获取一些字符串,我设法使用正则表达式做到了这一点并使其动态生成,但不知何故它 returns 以数组形式出现,有 2 个重复答案。 我知道我可以像 array[0] 一样传递它,但它看起来并不简单。我做错了什么?

function stringBefore($string:String, $before:String):void {
        var s:String = $string;         
        var start:RegExp = /^([^/;
        var end:RegExp = /]*)/g;
        var completeRegExp:RegExp = new RegExp(start.source + $before + end.source);

        trace(s.match(completeRegExp))
    }

Exp: 传递类似 'SFX_SOUND' 我将在数组中得到 [SFX, SFX]

您不能以这种方式组合正则表达式。您只能组合字符串模式,然后编译一个正则表达式对象。因此,您可能希望像这样修复您的代码:

var start:RegExp = "^([^";
var end:RegExp = "]*)";
var completeRegExp:RegExp = new RegExp(start.source + $before + end.source, "g");

或者,也许只是使用字符串

var start:String = "^([^";
var end:String = "]*)";
var completeRegExp:RegExp = new RegExp(start + $before + end, "g");