Как получить текст между данными и запятой в строке? - PullRequest
0 голосов
/ 13 января 2019

Я анализирую текст с веб-сайта, где я получил строку:

"Some Event 21.08.2019—31.08.2019 Standart (1+1) ,  Some text"

или что-то подобное. Мне нужно получить текст между последней датой и запятой . Вот "Standart (1+1)" срез. Как это сделать?

str1 = "Some Event 21.08.2019—31.08.2019 Standart (1+1) ,  Some text"
Answer: str2 = "Standart (1+1)"

1 Ответ

0 голосов
/ 13 января 2019

Вы можете разобрать это с помощью регулярного выражения:

>>> import re
>>> str1 = "Some Event 21.08.2019—31.08.2019 Standart (1+1) ,  Some text"
>>> m = re.match(r'.*? \d{2}\.\d{2}\.\d{4}.\d{2}\.\d{2}\.\d{4} (.*?) , .*', str1)
>>> m.group(1)
'Standart (1+1)'

.*? соответствует чему угодно, но только так, как должно. \d{2} соответствует двум цифрам. \. соответствует периоду. . совпадает с чем угодно, я использую его для соответствия с этой чертой без необходимости вводить его. (.*?) сопоставляет что-либо и захватывает его таким образом, что впоследствии оно будет иметь ,. В конце концов я собираю только все остальное с .*.

Это сломается, если в желаемой строке есть запятая. Тогда было бы лучше иметь (.*) для захвата и .*? в конце.

И, кстати, скорее всего написано «Стандарт», а не «Стандарт».

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