#python #regex #split
Вопрос:
Мне интересно, могу ли я разделить строку python на 3 шага
Сначала с помощью (), во-вторых, с помощью {} и, наконец, с помощью»,»
string = "module ( a , b, c, d, {e, f, g}, {h,i}, j, k )"
result = re.split("",string)
print(result)
Я хочу, чтобы результат этого кода был таким, как показано ниже
['a', 'b', 'c', 'd', '{e,f,g}', '{h,i}', 'j', 'k']
Комментарии:
1. Добро пожаловать в Stack Overflow. Не могли бы вы немного прояснить свой вопрос? Какие шаблоны вы пробовали? Шаблон, который вы показываете в примере кода, полностью пуст, что вам мало что даст! Вы уверены, что регулярные выражения-правильный инструмент для этой работы? Регулярные выражения (в их чистых формах) ограничены соответствием регулярному языку, и ваша проблема, похоже, выходит за рамки этого (с возможно вложенными соответствующими скобками).
Ответ №1:
Это делает то, о чем вы просите, если вещи не вложены глубже, чем это.
import re
pat = r'w |{[^}]*}'
string = "module ( a , b, c, d, {e, f, g}, {h,i}, j, k )"
result = re.findall(pat, string)
print(list(result))
Выход:
C:tmp>python x.py
['module', 'a', 'b', 'c', 'd', '{e, f, g}', '{h,i}', 'j', 'k']