Как найти строку между символами?
Есть строка
text = "smth text [n=16] smth text"
Я создал функцию, которая должна находить значения, указанные в формате:
"[variable=value]"
def get_value(text, var):
value = re.search(rf'{var}=?[([^]>]+)', text)
if value:
value = value.group(1)
return value
Но она не выводит того, что мне нужно
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Запустил ваш код с print(get_value(text, 'n')) и выдало ошибку re.error: unbalanced parenthesis at position 11
Исправил регулярку и добавил аннотацию типов:
import re
def get_value(text: str, var: str) -> str:
m = re.search(rf'\[{var}=([^]]+)\]', text)
if m:
return m.group(1)
text = "smth text [n=16] smth text"
print(get_value(text, 'n'))
# 16
text = "smth [n=16] text [xyz='123 abc'] smth text"
print(get_value(text, 'xyz'))
# '123 abc'