def parseGraphParams(params): """ Parse params string into parts: key - value. Key may contain a dot. Sample params: param1 Параметр2.subparam = 111 Параметр3 = " bla bla bla" param4.sub.param2 = "111" param5 =' 222 ' param7 = " sample 'bla bla bla' example" param8 = ' test "bla-bla-bla" test ' """ pattern = r"""((?P<name>[\w.]+) (\s*=\s*(?P<param>([-_\w.]+)|((?P<quote>["']).*?(?P=quote)) ) )?\s*)""" result = {} regex = re.compile( pattern, re.IGNORECASE | re.MULTILINE | re.DOTALL | re.VERBOSE ) matches = regex.finditer(params) for match in matches: name = match.group("name") param = match.group("param") if param is None: param = u"" result[name] = Command.removeQuotes(param) return result
def parseGraphParams(params): """ Parse params string into parts: key - value. Key may contain a dot. Sample params: param1 Параметр2.subparam = 111 Параметр3 = " bla bla bla" param4.sub.param2 = "111" param5 =' 222 ' param7 = " sample 'bla bla bla' example" param8 = ' test "bla-bla-bla" test ' """ pattern = ur"""((?P<name>[\w.]+) (\s*=\s*(?P<param>([-_\w.]+)|((?P<quote>["']).*?(?P=quote)) ) )?\s*)""" result = {} regex = re.compile( pattern, re.IGNORECASE | re.MULTILINE | re.DOTALL | re.VERBOSE | re.UNICODE) matches = regex.finditer(params) for match in matches: name = match.group("name") param = match.group("param") if param is None: param = u"" result[name] = Command.removeQuotes(param) return result