regex 如何在Python中使用正则表达式为给定代码提取键值对?

sg24os4d  于 2023-05-30  发布在  Python
关注(0)|答案(1)|浏览(140)

如何在Python中使用正则表达式解析此代码?

text1 = '{% set name = "testDB" %}'
text2 = '{% set version = "0.0.1" %}'

我需要以键和值的形式输出,我可以存储key_text1 = set namevalue_text1 = testDB。类似地,对于text2key_text2 = set version和`value_text2 = 0.0.1
我尝试的代码如下:

import re

pattern = r"^{% (\w+)\s*=\s*'(.*?)' %}$"
text = '{% set name = "testDB" %}'

match = re.search(pattern, text)

if match:
    key = match.group(1)
    value = match.group(2)
    print("key:", key)
    print("value:", value)
else:
    print("No match found.")

我在这里得到的输出是No match found,而不是key和value

qacovj5a

qacovj5a1#

给定所显示的数据,您似乎希望隔离字符串中两个双引号之间的任何内容。如果是这样的话:

import re

text1 = '{% set name = "testDB" %}'
text2 = '{% set version = "0.0.1" %}'

pattern = re.compile(r'(?<=").+?(?=")')

for text in text1, text2:
    print(pattern.findall(text))

输出:

['testDB']
['0.0.1']

相关问题