регулярное выражение, разделенное на несколько разделителей - PullRequest
1 голос
/ 01 апреля 2020

У меня есть строка:

inputString = "foo325434<453453 bar :"

Я хочу разделить строку на: <и пробел при сохранении: <</p>

Пока я делаю следующее:

inputArray = re.split(r'\s*(:|>|<)\s*', inputString)

Приведенный выше код обеспечивает следующий результат:

['foo325434', '<', '453453 bar', ':', '']

Я хочу получить следующий результат:

['foo325434', '<', '453453', 'bar', ':']

1 Ответ

2 голосов
/ 01 апреля 2020

Вы можете использовать

re.findall(r'[^:><\s]+|[:><]', inputString)

См. Демо regex и демо Python .

Подробности

  • [^:><\s]+ - 1+ символов, отличных от :, <, > и пробелов
  • | - или
  • [:><] - :, < или >.

re.findall вернет все непересекающиеся совпадения из строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...