Сложный шаблон регулярных выражений - PullRequest
0 голосов
/ 05 марта 2020

У меня есть следующие буквальные строки, по которым я зацикливаюсь:

Some prior text <COMPANY-IDENTIFIER>oranges.txt : 3254323
Some prior text <COMPANY-IDENTIFIER>raisins.txt : 6434422
Some prior text <COMPANY-IDENTIFIER>apples.txt : 932323

Я пытаюсь разбить строки на: <COMPANY-IDENTIFIER>, имя файла и :

Я считаю, < и > являются специальными символами регулярного выражения и изменения имени файла для каждой строки.

Я использовал варианты следующего шаблона для разделения на:

pattern = '<COMPANY-IDENTIFIER>(.*): '  #supposed to detect <COMPANY-IDENTIFIER>apples.txt : , etc
the_number = string.split(pattern)[1]

Но мой шаблон не работает.

Нужны указания о том, что я делаю неправильно.

Спасибо.

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Чтобы разделить в этой точке, вы можете использовать регулярное выражение

r' +<|>| *: *'

Демо

Регулярное выражение гласит: «соответствовать одному или нескольким пробелам, за которыми следует» <'<em> или '> ' или один или несколько пробелов, за которыми следует двоеточие, за которым следует один или несколько пробелов ".

"Some prior text <COMPANY-IDENTIFIER>oranges.txt : 3254323"

разбивается на "Some prior text" "COMPANY-IDENTIFIER", "oranges.txt" и "3254323".

1 голос
/ 05 марта 2020

Вы должны использовать регулярные выражения, re.split(), а не str.split(). Также удалите скобки из шаблона:

pattern = '<COMPANY-IDENTIFIER>.*: '
re.split(pattern, txt)
#['Some prior text ', '3254323']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...