我在AS3中有一些使用内联AS3正则表达式语法定义的正则表达式,如:
/\/\*[\s\S]*?\*\//gm
我想将其转换为AS3 RegEx类构造函数,如:
new RegExp('/\/\*[\s\S]*?\*\//', "gm")
我不确定是否必须逃避反斜杠。你知道怎么转换吗?
/** ------------------------- Regular Expressions ---------------------------- */
public static var multiLineCComments:RegExp = /\/\*[\s\S]*?\*\//gm;
public static var singleLineCComments:RegExp = /\/\/.*$/gm;
public static var singleLinePerlComments:RegExp = /#.*$/gm;
public static var doubleQuotedString:RegExp = /"([^\\"\n]|\\.)*"/g;
public static var singleQuotedString:RegExp = /'([^\\'\n]|\\.)*'/g;
public static var multiLineDoubleQuotedString:XRegExp = new XRegExp('"([^\\\\"]|\\\\.)*"', 'gs');
public static var multiLineSingleQuotedString:XRegExp = new XRegExp("'([^\\\\']|\\\\.)*'", 'gs');
public static var xmlComments:RegExp = /(<|<)!--[\s\S]*?--(>|>)/gm;
public static var url:RegExp = /\w+:\/\/[\w-.\/?%&=:@;]*/g;
答案 0 :(得分:1)
我明白该怎么做。
删除作为AS3正则表达式语法一部分的第一个和最后一个/
。
将结束选项(例如g
或gm
)放在第二个参数中。
最后通过用2个反斜杠替换每个反斜杠(\
)
总结如下:
/\/\*[\s\S]*?\*\//gm
new RegExp ("\\/\\*[\\s\\S]*?\\*\\/", 'gm')
答案 1 :(得分:0)
你可以用另一种方式做到这一点:
private static const pattern:RegExp = /\/\*[\s\S]*?\*\//;
public static var regex:XRegExp = new XRegExp(pattern.source, "gm");