Распределение регулярного выражения python в соответствии с критериями

Рассмотрение вопроса Python Regex – заменить строку, не расположенную между двумя конкретными словами, поскольку ответы были неполными.

Учитывая строку str, разделите в соответствии с «::», не обращая внимания на «::» между «<» и «>» скобками.

Ожидаемые входы и выходы:

input a :: <<a :: b> c>::<a < a < b:: b> :: b> :: b> :: a output [a , <<a :: b> c>,<a < a < b:: b> :: b> :: b> , a] input a< b <c a>> output [a< b <c a>>] input a:<a b> output [a:<a b>] 

One Solution collect form web for “Распределение регулярного выражения python в соответствии с критериями”

Просто условие if else необходимо для этого случая. Это приведет к расщеплению, если есть какая-либо :: подстрока, присутствующая внутри входной строки, иначе она вернет фактическую строку ввода.

 >>> def csplit(s): if '::' in s: return [i for i in regex.split(r'(<(?:(?R)|[^<>])*>)|::', s) if i and i != ' '] else: return s >>> csplit('a :: <<a :: b> c>::<a < a < b:: b> :: b> :: b> :: a') ['a ', '<<a :: b> c>', '<a < a < b:: b> :: b> :: b>', ' a'] >>> csplit('a:<a b>') 'a:<a b>' >>> csplit('a< b <c a>>') 'a< b <c a>>' 
  • найти повторяющееся выражение с использованием регулярного выражения python
  • совпадение конечной косой черты с регулярным выражением Python
  • Как я могу заменить нотации LaTeX $ ... $ и $$ ... $$ чем-то вроде <div> $ ... $ </ div>?
  • Проверьте, соответствует ли строка шаблону
  • Может ли регулярное выражение python считать круглые скобки?
  • Регулярные выражения Python - re.search () vs re.findall ()
  • Python: заменить теги, но сохранить внутренний текст?
  • регулярные выражения python возвращают true / false
  • Python - лучший язык программирования в мире.