#python #regex #split
#питон #регулярное выражение #расщеплять
Вопрос:
У меня есть строка кода, похожая на эту:
replace [IntType] import TYPE [libc_to_basic_type_entry*]
Теперь я хочу разделить их на массивы, используя регулярное выражение Python, подобное этому:
["replace", "[", "IntType", "]"] ["import", "TYPE", "[", "libc_to_basic_type_entry, "*", "]"]
Каков наилучший способ сделать это? Спасибо.
Сначала я пытаюсь сделать все просто string.split("[")
и продолжаю циклически повторять строку split
с другими символами. Но я обнаружил, что этот способ неэффективен, поэтому я хотел бы попросить о помощи, используя регулярное выражение.
Комментарии:
1. Сначала я пытаюсь сделать простую строку.split(«[«) и продолжаю перебирать строку, чтобы разделить ее с другими символами. Но я обнаружил, что этот способ неэффективен, поэтому я хотел бы обратиться за помощью с помощью регулярного выражения
2. Всегда лучше показать свои попытки, о которых идет речь. Я отредактировал ваш вопрос и обновил его вашим комментарием. Пожалуйста, не взимайте дополнительную плату за дополнительную информацию.
Ответ №1:
Вы можете использовать это регулярное выражение:
s*(w |[^ws])s*
Сведения о регулярном выражении:
s*
: Совпадение 0 или более пробелов(
: Запустить группу захватаw
: Сопоставьте 1 словесных символов|
: ИЛИ[^ws]
: Сопоставьте символ, который не является словом или пробелом
)
: Конечная группа захватаs*
: Совпадение 0 или более пробелов
Код:
s = 'import TYPE [libc_to_basic_type_entry*]' print (re.findall(r's*(w |[^ws])s*', s))
Выход:
['import', 'TYPE', '[', 'libc_to_basic_type_entry', '*', ']']