2012-08-28 73 views
2

我有在AS3一對夫婦正則表達式的的與該直列AS3正則表達式語法等被定義:AS3 - 如何正確逃生正則表達式

  • /\/\*[\s\S]*?\*\//gm

我想將其轉換成在AS3正則表達式類的構造函數,如:

  • 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; 

回答

1

我明白該怎麼做。

  1. 刪除第一個也是最後一個/這是AS3正則表達式語法的一部分。

  2. 在第二個參數中放置結束選項,例如ggm

  3. 並且最後用2個反斜線

因此,在總結替換它逃脫每反斜槓(\):

  • 在線語法:/\/\*[\s\S]*?\*\//gm
  • 正則表達式語法:new RegExp ("\\/\\*[\\s\\S]*?\\*\\/", 'gm')
0

你可以這樣做的另一種方式:

private static const pattern:RegExp = /\/\*[\s\S]*?\*\//; 
public static var regex:XRegExp = new XRegExp(pattern.source, "gm");