Рубрики
Без рубрики

Python Regex Split без пустой строки

Скажите формулировка задачи, вы используете функцию Re.Split (Pattern, String) для разделения строки на все вхождения данного шаблона. Если шаблон появляется в начале или в конце строки, полученный список разделений будет содержать пустые строки. Как избавиться от пустых струн автоматически? Вот пример: Import Re … Python Regex Split без пустой строки Подробнее »

Автор оригинала: Chris.

Постановка проблемы

Скажи, вы используете Re.Split (шаблон, строка) Функция для разделения строки на все вхождения данного шаблона. Если шаблон появляется в начале или в конце строки, полученный список разделений будет содержать пустые строки. Как избавиться от пустых струн автоматически?

Вот пример:

import re

s = '--hello-world_how    are\tyou-----------today\t'

words = re.split('[-_\s]+', s)
print(words)
# ['', 'hello', 'world', 'how', 'are', 'you', 'today', '']

Обратите внимание на пустые строки в результирующемся списке.

Фон

Re.Split (шаблон, строка) Метод соответствует всем вхождению шаблон В строка и делит строку вдоль матчей, что приводит к списку строк между матчи. Например, Re.Split («A», «BBABBBAB») Результаты в списке строк [«BB», «BBB», «B»] – и Re.Split («А», «Аббандбаба») Результаты в списке строк ['', «BB», «BBB», «B», ''] с пустыми струнами.

Связанная статья: Python Regex Split.

Способ 1: Удалите все пустые строки из списка с использованием понимания списка

Тривиальное решение этой проблемы состоит в том, чтобы Удалить все пустые строки Из полученного списка с использованием Понимание списка с условием такие как [X для X в словах, если] к Фильтр из пустой строки.

import re

s = '--hello-world_how    are\tyou-----------today\t'

# Method 1: Remove all Empty Strings From the List
words = re.split('[-_\s]+', s)
words = [x for x in words if x!='']
print(words)
# ['hello', 'world', 'how', 'are', 'you', 'today']

Способ 2: Удалите все пустые строки из списка с помощью фильтра ()

Альтернативное решение – это Удалить все пустые строки Из полученного списка с использованием Фильтр () такие как Фильтр (бул, слова) к Фильтр из пустой строки '' и другие элементы, которые оценивают в Ложь такие как Нет Отказ

import re

s = '--hello-world_how    are\tyou-----------today\t'

# Method 2: Remove Empty Strings From List using filter()
words = re.split('[-_\s]+', s)
words = list(filter(bool, words))
print(words)
# ['hello', 'world', 'how', 'are', 'you', 'today']

Способ 3: Используйте Re.findall () Вместо

Простой и пифитоновый раствор – использовать Re.findall (шаблон, строка) С обратной структурой, используемой для разделения списка. Если шаблон A используется в качестве разделенного шаблона, все, что не соответствует шаблону A, может использоваться в Re.findall () Функция, чтобы по существу извлекать список разделений.

Вот пример, который использует Отрицательный класс символов [^ -_ \ s] + Чтобы найти все символы, которые не соответствуют разбитому шаблону:

import re

s = '--hello-world_how    are\tyou-----------today\t'

# Method 3: Use re.findall()
words = re.findall('([^-_\s]+)', s)
print(words)

Результатом является тот же список разделений:

['hello', 'world', 'how', 'are', 'you', 'today']

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/python-regex-split-without-empty-string/”