json - Python regex issues - Attempting to parse string -


i want take string this:

enabled='false' script='var name=\'bob\'\\n ' index='0' value='' 

and convert json type format:

{'enabled': 'false', 'script': 'var name=\'bob\'\\n ', 'index': '0', 'value': ''} 

but cannot life of me figure out regex or combination of splitting string produce result.

the values can have specials characters in them , escape single quotes , backslashes.

is there way regex in python stop after finding first match?

for example, this:

import re re.findall('[a-za-z0-9]+=\'.*\'', line) 

will match entire string instead , won't stop @

['stripprefix=\'false\'', ....] 

like to.

first of all, assume have mistake in input string: quote before "bob" should escaped.

if assumption correct use regex code this:

>>> line = r"""enabled='false' script='var name=\'bob\'\\n ' index='0' value=''""" >>> re.findall(r"([a-za-z]*)='((?:[^'\\]|\\.)*)'\s*", line) [('enabled', 'false'), ('script', "var name=\\'bob\\'\\\\n "), ('index', '0'), ('value', '')] 
  • [^'\\] match symbol except quote , backslash
  • \\. match backslash and 1 more symbol
  • ([^'\\]|\\.) matches either of previous cases
  • (?:[^\\]|\\.) same doesn't capture match result (check https://docs.python.org/2.7/library/re.html)
  • (?:[^'\\]|\\.)* repeat times

Comments

Popular posts from this blog

html - Styling progress bar with inline style -

java - Oracle Sql developer error: could not install some modules -

How to use autoclose brackets in Jupyter notebook? -