动态文本正则表达式之前的字符串,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");
我试图在“_”之前获取一些字符串,我设法使用正则表达式做到了这一点并使其动态生成,但不知何故它 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");