( self, quoteChar, escChar=None, escQuote=None, multiline=False, unquoteResults=True, endQuoteChar=None)
Defined with the following parameters:
            - quoteChar - string of one or more characters defining the quote delimiting string
            - escChar - character to escape quotes, typically backslash (default=None)
            - escQuote - special quote sequence to escape an embedded quote string (such as SQL's "" to escape an embedded ") (default=None)
            - multiline - boolean indicating whether quotes can span multiple lines (default=False)
            - unquoteResults - boolean indicating whether the matched text should be unquoted (default=True)
            - endQuoteChar - string of one or more characters defining the end of the quote delimited string (default=None => same as quoteChar)
Defined with the following parameters:
            - quoteChar - string of one or more characters defining the quote delimiting string
            - escChar - character to escape quotes, typically backslash (default=None)
            - escQuote - special quote sequence to escape an embedded quote string (such as SQL's "" to escape an embedded ") (default=None)
            - multiline - boolean indicating whether quotes can span multiple lines (default=False)
            - unquoteResults - boolean indicating whether the matched text should be unquoted (default=True)
            - endQuoteChar - string of one or more characters defining the end of the quote delimited string (default=None => same as quoteChar)
Defined with the following parameters : - quoteChar - string of one or more characters defining the quote delimiting string - escChar - character to escape quotes typically backslash ( default = None ) - escQuote - special quote sequence to escape an embedded quote string ( such as SQL s to escape an embedded ) ( default = None ) - multiline - boolean indicating whether quotes can span multiple lines ( default = False ) - unquoteResults - boolean indicating whether the matched text should be unquoted ( default = True ) - endQuoteChar - string of one or more characters defining the end of the quote delimited string ( default = None = > same as quoteChar )
def __init__( self, quoteChar, escChar=None, escQuote=None, multiline=False, unquoteResults=True, endQuoteChar=None):
        """
           Defined with the following parameters:
            - quoteChar - string of one or more characters defining the quote delimiting string
            - escChar - character to escape quotes, typically backslash (default=None)
            - escQuote - special quote sequence to escape an embedded quote string (such as SQL's "" to escape an embedded ") (default=None)
            - multiline - boolean indicating whether quotes can span multiple lines (default=False)
            - unquoteResults - boolean indicating whether the matched text should be unquoted (default=True)
            - endQuoteChar - string of one or more characters defining the end of the quote delimited string (default=None => same as quoteChar)
        """
        super(QuotedString,self).__init__()

        # remove white space from quote chars - wont work anyway
        quoteChar = quoteChar.strip()
        if len(quoteChar) == 0:
            warnings.warn("quoteChar cannot be the empty string",SyntaxWarning,stacklevel=2)
            raise SyntaxError()

        if endQuoteChar is None:
            endQuoteChar = quoteChar
        else:
            endQuoteChar = endQuoteChar.strip()
            if len(endQuoteChar) == 0:
                warnings.warn("endQuoteChar cannot be the empty string",SyntaxWarning,stacklevel=2)
                raise SyntaxError()

        self.quoteChar = quoteChar
        self.quoteCharLen = len(quoteChar)
        self.firstQuoteChar = quoteChar[0]
        self.endQuoteChar = endQuoteChar
        self.endQuoteCharLen = len(endQuoteChar)
        self.escChar = escChar
        self.escQuote = escQuote
        self.unquoteResults = unquoteResults

        if multiline:
            self.flags = re.MULTILINE | re.DOTALL
            self.pattern = r'%s(?:[^%s%s]' % \
                ( re.escape(self.quoteChar),
                  _escapeRegexRangeChars(self.endQuoteChar[0]),
                  (escChar is not None and _escapeRegexRangeChars(escChar) or '') )
        else:
            self.flags = 0
            self.pattern = r'%s(?:[^%s\n\r%s]' % \
                ( re.escape(self.quoteChar),
                  _escapeRegexRangeChars(self.endQuoteChar[0]),
                  (escChar is not None and _escapeRegexRangeChars(escChar) or '') )
        if len(self.endQuoteChar) > 1:
            self.pattern += (
                '|(?:' + ')|(?:'.join(["%s[^%s]" % (re.escape(self.endQuoteChar[:i]),
                                               _escapeRegexRangeChars(self.endQuoteChar[i]))
                                    for i in range(len(self.endQuoteChar)-1,0,-1)]) + ')'
                )
        if escQuote:
            self.pattern += (r'|(?:%s)' % re.escape(escQuote))
        if escChar:
            self.pattern += (r'|(?:%s.)' % re.escape(escChar))
            self.escCharReplacePattern = re.escape(self.escChar)+"(.)"
        self.pattern += (r')*%s' % re.escape(self.endQuoteChar))

        try:
            self.re = re.compile(self.pattern, self.flags)
            self.reString = self.pattern
        except sre_constants.error:
            warnings.warn("invalid pattern (%s) passed to Regex" % self.pattern,
                SyntaxWarning, stacklevel=2)
            raise

        self.name = _ustr(self)
        self.errmsg = "Expected " + self.name
        #self.myException.msg = self.errmsg
        self.mayIndexError = False
        self.mayReturnEmpty = True
def __init__ ( self , quoteChar , escChar = None , escQuote = None , multiline = False , unquoteResults = True , endQuoteChar = None ) : super ( QuotedString , self ) . __init__ ( ) # remove white space from quote chars - wont work anyway quoteChar = quoteChar . strip ( ) if len ( quoteChar ) == 0 : warnings . warn ( "quoteChar cannot be the empty string" , SyntaxWarning , stacklevel = 2 ) raise SyntaxError ( ) if endQuoteChar is None : endQuoteChar = quoteChar else : endQuoteChar = endQuoteChar . strip ( ) if len ( endQuoteChar ) == 0 : warnings . warn ( "endQuoteChar cannot be the empty string" , SyntaxWarning , stacklevel = 2 ) raise SyntaxError ( ) self . quoteChar = quoteChar self . quoteCharLen = len ( quoteChar ) self . firstQuoteChar = quoteChar [ 0 ] self . endQuoteChar = endQuoteChar self . endQuoteCharLen = len ( endQuoteChar ) self . escChar = escChar self . escQuote = escQuote self . unquoteResults = unquoteResults if multiline : self . flags = re . MULTILINE | re . DOTALL self . pattern = r'%s(?:[^%s%s]' % ( re . escape ( self . quoteChar ) , _escapeRegexRangeChars ( self . endQuoteChar [ 0 ] ) , ( escChar is not None and _escapeRegexRangeChars ( escChar ) or '' ) ) else : self . flags = 0 self . pattern = r'%s(?:[^%s\n\r%s]' % ( re . escape ( self . quoteChar ) , _escapeRegexRangeChars ( self . endQuoteChar [ 0 ] ) , ( escChar is not None and _escapeRegexRangeChars ( escChar ) or '' ) ) if len ( self . endQuoteChar ) > 1 : self . pattern += ( '|(?:' + ')|(?:' . join ( [ "%s[^%s]" % ( re . escape ( self . endQuoteChar [ : i ] ) , _escapeRegexRangeChars ( self . endQuoteChar [ i ] ) ) for i in range ( len ( self . endQuoteChar ) - 1 , 0 , - 1 ) ] ) + ')' ) if escQuote : self . pattern += ( r'|(?:%s)' % re . escape ( escQuote ) ) if escChar : self . pattern += ( r'|(?:%s.)' % re . escape ( escChar ) ) self . escCharReplacePattern = re . escape ( self . escChar ) + "(.)" self . pattern += ( r')*%s' % re . escape ( self . endQuoteChar ) ) try : self . re = re . compile ( self . pattern , self . flags ) self . reString = self . pattern except sre_constants . error : warnings . warn ( "invalid pattern (%s) passed to Regex" % self . pattern , SyntaxWarning , stacklevel = 2 ) raise self . name = _ustr ( self ) self . errmsg = "Expected " + self . name #self.myException.msg = self.errmsg self . mayIndexError = False self . mayReturnEmpty = True