Я работаю с помеченным текстом, и мне нужно извлечь информацию, чтобы использовать ее позже. Я хочу использовать регулярные выражения из Python с помощью модуля re, но не могу составить правильное выражение. У меня есть две ситуации:
Текст в формате string="{some text}{other text 1}{other text 2}". Здесь я использую регулярное выражение "\\{(.*?)\\}", но получаю
>> string="{some text}{other text 1}{other text 2}"
>> elements = re.split("\\{(.*?)\\}",string)
>> print(elements)
>> ['', 'some text', '', 'other text 1', '', 'other text 2', '']
Я не могу понять, почему пустые строки появляются в позициях 0, 2, 4 и 6. Если я отредактирую исходную строку на string="}{some text}{other text 1}{other text 2}{" и использую регулярное выражение "\\}\\{(.*?)\\}\\{", я получу
>> string="}{some text}{other text 1}{other text 2}{"
>> elements = re.split("\\}\\{(.*?)\\}\\{",string)
>> print(elements)
>> ['', 'some text', 'other text 1', 'other text 2', '']
внутренние пустые строки в выводе исчезают, но не первая и последняя. Как мне составить регулярное выражение, чтобы получать только элементы внутри скобок?
Текст в формате string="некоторый текст {другой текст}". В этом случае мне нужно извлечь «некоторый текст», а также «другой текст». Здесь я не знаю, как действовать.
Я работаю с помеченным текстом, и мне нужно извлечь информацию, чтобы использовать ее позже. Я хочу использовать регулярные выражения из Python с помощью модуля re, но не могу составить правильное выражение. У меня есть две ситуации: [list] [*]Текст в формате string="{some text}{other text 1}{other text 2}". Здесь я использую регулярное выражение "\\{(.*?)\\}", но получаю [code]>> string="{some text}{other text 1}{other text 2}" >> elements = re.split("\\{(.*?)\\}",string) >> print(elements) >> ['', 'some text', '', 'other text 1', '', 'other text 2', ''] [/code] Я не могу понять, почему пустые строки появляются в позициях 0, 2, 4 и 6. Если я отредактирую исходную строку на string="}{some text}{other text 1}{other text 2}{" и использую регулярное выражение "\\}\\{(.*?)\\}\\{", я получу [code]>> string="}{some text}{other text 1}{other text 2}{" >> elements = re.split("\\}\\{(.*?)\\}\\{",string) >> print(elements) >> ['', 'some text', 'other text 1', 'other text 2', ''] [/code] внутренние пустые строки в выводе исчезают, но не первая и последняя. Как мне составить регулярное выражение, чтобы получать только элементы внутри скобок?
[*]Текст в формате string="некоторый текст {другой текст}". В этом случае мне нужно извлечь «некоторый текст», а также «другой текст». Здесь я не знаю, как действовать.