Regex работает в Sublime, а не в Python (Jupyter) - PullRequest
0 голосов
/ 18 апреля 2019

Я создаю блокнот Jupyter для очистки большого количества романов с помощью кода регулярного выражения, который я тестирую в Sublime.Во многих моих текстах есть фраза «оцифровано Google», потому что именно там я получил PDF-файл, по которому я прошел Оптическое распознавание символов.Я хочу удалить все предложения, которые содержат фразу «Оцифрованный», или, скорее, «gitized», поскольку первая часть не всегда корректно транскрибируется.

Когда я использую эту фразу в Sublimes «функция замены», я получаюименно те результаты, которые я хочу получить:

^.*igitized.*$

Однако, когда я пытаюсь использовать метод re.sub в своем блокноте Jupyter, который работает с некоторыми другими фразами, строки «Оцифровано Google» неправильно определеныи заменено на «ничто».

text = re.sub(r'^.*igitized.*$', '', text)

Чего мне не хватает?

1 Ответ

0 голосов
/ 18 апреля 2019

По умолчанию '^' соответствует только в начале строки, а '$' - только в конце строки и непосредственно перед новой строкой (если есть) в конце строки.Добавьте флаг re.MULTILINE, чтобы соответствовать началу строки.

text = re.sub(r'^.*igitized.*$', '', text, flags=re.MULTILINE)

Использование ^ для соответствия начала строки в регулярном выражении Python

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