Как с помощью регулярных выражений извлечь одни кавычки и оставить другие?
def yaml(a):
# your code here
import re
b=re.findall(r'(.*:.*)',a)
bb=re.findall(r'(\w+):\s"?([a-zA-Z0-9\\" ]*)"?',a)
print('bb',bb)
count=0
dic={}
for i in b:
s=i.split(': ')
ss=[]
for a in s:
print(a)
a=re.findall(fr'.*?(\w+\s?\w+).*',a)
ss.append(a[0])
print(ss)
dic[ss[0]]=int(ss[1]) if ss[1].isdigit() else ss[1]
print(dic)
return dic
if __name__ == '__main__':
print("Example:")
print(yaml('name: Alex\nage: 12'))
# These "asserts" are used for self-checking and not for an auto-testing
assert yaml('name: Alex\nage: 12') == {'age': 12, 'name': 'Alex'}
assert yaml('name: Alex Fox\n''age: 12\n''\n''class: 12b') == {'age': 12,
'class': '12b','name': 'Alex Fox'}
assert yaml('name: "Alex Fox"\n''age: 12\n''\n''class: 12b') == {'age': 12,
'class': '12b','name': 'Alex Fox'}
assert yaml('name: "Alex \\"Fox\\""\n''age: 12\n''\n''class: 12b') == {'age': 12,
'class': '12b','name': 'Alex "Fox"'}
Не могу удалить кавычки правильно. Например: "Alex Fox" должно остаться 'Alex Fox' а при "Alex \"Fox\" 'Alex "Fox"' Как это сделать правильно? Например, bb: это я пробовал извлечь за один раз. (yaml это просто название)