如何使用正则表达式python 3.x提取引号内的值
我有以下几点如何使用正则表达式python 3.x提取引号内的值,python,regex,python-3.x,Python,Regex,Python 3.x,我有以下几点 \"url\": \"\\\/maru.php?superalox=1\", \"params\": {\"params\": \"EgtmbUtXdUZWdDF2SSoCCABQAQ%3D%3D\", \"session_value\": \"QUFFLUhqbnQ4eW5HeEZYdDBULU5EVk1LREU2VndMMm1nd3xBQ3Jtc0trMUlMOWRqTWxpS0pOT2pNUVN6RENVU3k0Tmc4blplodexsWkxrVDRmOUN2Q0lXVkl
\"url\": \"\\\/maru.php?superalox=1\", \"params\": {\"params\": \"EgtmbUtXdUZWdDF2SSoCCABQAQ%3D%3D\", \"session_value\": \"QUFFLUhqbnQ4eW5HeEZYdDBULU5EVk1LREU2VndMMm1nd3xBQ3Jtc0trMUlMOWRqTWxpS0pOT2pNUVN6RENVU3k0Tmc4blplodexsWkxrVDRmOUN2Q0lXVkl1N0YwUFhoV1puQ3ZFQm10X1RzNWR4Q3RUeG5kMkdLNnNobTUyRkNuaG90d2c=\"}, \"log_params\":
我想提取参数的值,它是EgtmbUtXdUZWdDF2SSoCCABQAQ%3D%3D
我试过这个,但没用
my_text = """ \"url\": \"\\\/maru.php?superalox=1\", \"params\": {\"params\": \"EgtmbUtXdUZWdDF2SSoCCABQAQ%3D%3D\", \"session_value\": \"QUFFLUhqbnQ4eW5HeEZYdDBULU5EVk1LREU2VndMMm1nd3xBQ3Jtc0trMUlMOWRqTWxpS0pOT2pNUVN6RENVU3k0Tmc4blplodexsWkxrVDRmOUN2Q0lXVkl1N0YwUFhoV1puQ3ZFQm10X1RzNWR4Q3RUeG5kMkdLNnNobTUyRkNuaG90d2c=\"}, \"log_params\": """
extract_data = re.search(r'(\\\"params\": \\\")(\w*)', my_text)
print(extract_data)
谢谢我已经成功地使用了以下内容:
(["'])(?:(?=(\\?))\2.)*?\1
它还支持嵌套引号
这同样有效:([“])(\?)*?\1更易于阅读
对于那些想要更深入地解释其工作原理的人,以下是用户的解释:
([“”])
匹配一个引号;((?=(\\?))\2。)
如果存在反斜杠,将其勾选,无论是否出现反斜杠,都要匹配一个字符;*?
多次匹配(不贪婪,以免吃到结束引号);\1
匹配用于开始的同一个引号
这是从这里找到的另一个答案复制而来的:您可以使用:
re.search(r'"params": "([^"]+)"', my_text).group(1)