Python: разделить строку по номеру - PullRequest
0 голосов
/ 24 марта 2020

Я читаю в тексте из PDF и ищу разделить строку на основе (anumber) и сохраню это значение в разделенной строке. Итак, строка:

Some sentence. (1) Another Sentence. (2) Final Sentence.

превратится в

Some sentence.
(1) Another Sentence.
(2) Final Sentence.

Я пытался сделать это с thestring.split('(') в качестве обходного пути, но есть скобки встречается в некоторых предложениях, приводящих к проблемам. Спасибо!

Ответы [ 3 ]

2 голосов
/ 24 марта 2020

Я бы разделил на шаблоне регулярных выражений \s+(?=\(\d+\)):

inp = "Some sentence. (1) Another Sentence. (2) Final Sentence."
parts = re.split(r'\s+(?=\(\d+\))', inp)
print(parts)

Это печатает:

['Some sentence.', '(1) Another Sentence.', '(2) Final Sentence.']

Используемый здесь шаблон регулярных выражений говорит разделить на один или несколько пробельных символов, которые сопровождаются чем-то вроде (1), то есть числом, заключенным в скобки.

2 голосов
/ 24 марта 2020

Вы можете использовать (?<=\.)\s, что означает «пробел, которому предшествует точка»

value = "Some sentence. (1) Another Sentence. (2) Final Sentence."
res = re.split(r"(?<=\.)\s", value)
print(res)  # ['Some sentence.', '(1) Another Sentence.', '(2) Final Sentence.']
1 голос
/ 24 марта 2020
import re
m = re.search('\([0-9]\).*\.', str)
# regex : escape the parens, capture a ONE DIGIT number from 0-9,
# escape paren, any sequence of characters, end with an escaped dot
# process the match object however you want

Для всех регулярных выражений я бы использовал Rubular

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