Есть ли способ ускорить это медленное регулярное выражение или заменить его другим решением?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ ускорить это медленное регулярное выражение или заменить его другим решением?

Сообщение Anonymous »

У меня есть регулярное выражение, но оно работает очень медленно, когда он сталкивается с большим количеством пробелов в тексте, есть ли способ ускорить его?import re

split_by_dot_pattern = r"(?|-(?=\s*\w+))"
split_by_tag_pattern = r"|(?)[\s+\n+]\s*(?=|)|[….?!](?=|
)"

sentence_split_pattern = split_by_dot_pattern + split_by_tag_pattern
sentence_split_regexp = re.compile(sentence_split_pattern)

def split_text_into_part(text, part_regexp):
"""
:rtype: list[dict]
"""
initial_position = 0
parts = []

for match in part_regexp.finditer(text):
start, end = match.span()
parts.append({'left': initial_position, 'length': start - initial_position, 'text': text[initial_position:start]})
initial_position = end

parts.append({'left': initial_position, 'length': len(text) - initial_position, 'text': text[initial_position:]})

return parts

example_text = " " * 10000 + " Show Image " + " " * 10000

print(split_text_into_part(example_text, sentence_split_regexp))


Подробнее здесь: https://stackoverflow.com/questions/794 ... t-with-ano
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»