2

我在 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                = /(&lt;|<)!--[\s\S]*?--(&gt;|>)/gm;
    public static var url:RegExp                        = /\w+:\/\/[\w-.\/?%&=:@;]*/g;
4

2 回答 2

1

我明白该怎么做。

  1. 删除作为/AS3 正则表达式语法的一部分的第一个和最后一个。

  2. 将结束选项如ggm放在第二个参数中。

  3. \最后通过用 2 个反斜杠替换每个反斜杠 ( )

总而言之:

  • 内联语法:/\/\*[\s\S]*?\*\//gm
  • 正则表达式语法:new RegExp ("\\/\\*[\\s\\S]*?\\*\\/", 'gm')
于 2012-08-28T12:04:30.730 回答
0

你可以用另一种方式做到这一点:

private static const pattern:RegExp = /\/\*[\s\S]*?\*\//;
public static var regex:XRegExp = new XRegExp(pattern.source, "gm");
于 2012-08-28T12:04:19.933 回答