Разбить строку на несколько разделителей - PullRequest
0 голосов
/ 15 января 2020

У меня есть строка "open this and close that", и я хочу получить "open this and" и "close that". Это моя лучшая попытка:

>>>print( re.split(r'[ ](?=(open|close)+)', "open this and close that") )
['open this and', 'close', 'close that']

Я использую Python 3.4.

Разделенная строка с несколькими разделителями в Python заменяет триггеры. Они нужны мне, сценарий должен знать, хочу ли я выключить или включить свет, а не только какой это свет.

Ответы [ 2 ]

1 голос
/ 15 января 2020

Вы можете просто использовать группировку, если знаете, какую букву вы используете.

import re
line = re.sub(r"(open this and) (close that)", r"\1\t\2", "open this and close that")
print (line)
0 голосов
/ 15 января 2020

Предполагая, что open и close - это ваши ключевые слова, которые вы можете сделать:

import regex as re
print(re.search(r'(open.+)(close.+)', "open this and close that").groups())
('open this and ', 'close that')

Обратите внимание, что вы не стираете пробел перед закрытием

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