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

Как разделить строку и держать сепараторы?

Резюме: Чтобы разделить строку и сохранить разделители / сепараторы. Вы можете использовать один из следующих способов: используйте модуль Regex и метод SPLIT () вместе с \ W специального символа. Используйте модуль Regex и метод разделения () вместе с набором отрицательного характера [^ a-za-Z0-9]. Используйте модуль Regex и метод разделения () вместе с либо – или … как разделить строку и Держите сепараторы? Подробнее “

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

Резюме: Разделить строку и сохранить разделители/сепараторы, вы можете использовать один из следующих способов:

  • Используйте модуль Regex и Сплит () Метод вместе с \ W Специальный персонаж Отказ
  • Используйте модуль Regex и Сплит () Метод вместе с отрицательным Набор символов [^ a-za-z0-9] Отказ
  • Используйте модуль Regex и Сплит () Метод вместе с Либо или Metacharacter | .
  • Используйте Понимание списка и добавить сепаратор.
  • Разделить с использованием линии разрыва: Сплитлины ()

Вы можете попробовать первый метод в нашей интерактивной оболочке Python:

Упражнение : Добавьте больше слов со специальными разделителями в текст. Это все еще работает?

Давайте погрузимся в проблему в пошаговой манере!

Проблема: Учитывая строку в Python; Как разделить строку, а также держать сепараторы/разделитель?

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

Пример: Подумайте, что есть данная строка, как показано в этом примере ниже, и вам нужно разделить ее так, что сепараторы/разделители также хранятся вместе со символами слова в списке. Пожалуйста, следуйте примеру, указанному ниже, чтобы получить обзор нашего заявления о проблеме.

text = 'finxter,practise@Python*1%every day'
somemethod(text)

Желаемый выход:

['finxter', ',', 'practice', '@', 'Python', '*', '1', '%', 'every', ' ', 'day']

Теперь, когда у нас есть обзор нашей проблемы, давайте погрузимся в решения без какой-либо задержки!

Использование регулярных выражений (Regex)

Наиболее эффективный способ расщепления строки и извлечения символов вместе с сепараторами является использование регулярных выражений вместе с Сплит () функция.

  • Сплит () это встроенный метод в Python, который используется для разделиния строки, которая соответствует регулярному выражению. Вы можете узнать больше о Сплит () Функция, следуя эта статья.

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

Метод 1: Использование ‘(\ w)’

Одним из способов, которыми мы можем разделить данную строку вместе с разделителем, является импорт модуля Regex, а затем разделить строку с помощью Сплит () Функция с |. Мета-персонаж.

import re

text = 'fnixter,practice@Python*1%every day'
print(re.split('(\W)', text))

Выход

['finxter', ',', 'practice', '@', 'Python', '*', '1', '%', 'every', ' ', 'day']

Давайте рассмотрим и обсудим выражение, используемое здесь:

  • () используется для хранения или хранения сепараторов/разделителей вместе со словами слова.
  • \ W Это специальная последовательность, которая возвращает матч, где он не находит никаких символов слова в данной строке. Здесь используется, чтобы найти разделители во время расщепления строки.

Способ 2: Использование [^] Установленный

Еще один способ разделения строки с помощью Regex – разделить его с помощью Сплит () функция вместе с ([^ a-za-z0-9]) установленный.

Давайте посмотрим на следующий пример, чтобы увидеть, как это работает:

import re

text = 'finxter,practice@Python*1%every day'
print(re.split('([^a-zA-Z0-9])', text))

Выход

['finxter', ',', 'practice', '@', 'Python', '*', '1', '%', 'every', ' ', 'day']

Давайте рассмотрим выражение, используемое здесь:

  • () используется для хранения или хранения сепараторов вместе со словами слова.
  • [] используется для соответствия набору символов в строке.
  • [^ a-za-z0-9] Используется для возврата совпадения для любого символа, кроме алфавитов (как заглавных букв, так и небольших букв), так и номеров, то есть. Он используется для поиска разделителя/сепаратора. В этом случае набор используется для нахождения разделителя и соответственно разделить строку в Word символов соответственно.

Способ 3: Использование либо (|) Metacharacter, чтобы указать разделители

Другой подход к решению нашей проблемы состоит в том, чтобы разделить строку с использованием функции разделения () вместе с либо – или Metacharacter |. Для предоставления/указать несколько разделителей в строке в соответствии с которыми мы хотим разделить строку. Метахарактер используется для передачи особого значения для регулярного выражения.

В нашем случае разделители, которые нам нужно указать, используя | Характер – [,|@|%

Давайте посмотрим на следующую программу, чтобы увидеть, как работает любой или мета-символ:

import re

text = 'finxter,practice@Python*1%every day'
print(re.split('([,|@|%| |*])', text))

Выход

['finxter', ',', 'practice', '@', 'Python', '*', '1', '%', 'every', ' ', 'day']

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

# Примечание

Два других метода нуждаются в особом упоминании в списке наших решений. Хотя они не являются точными решениями нашего заявления о проблеме. Тем не менее, они могут оказаться удобными в разных сценариях, основанных на требовании.

Давайте обсудим эти методы:

Отказ от ответственности: Ниже приходится один тип сепаратора между словами.

Способ 4: Использование понимания списка и добавление сепаратора

Учитывая, что строка имеет один сепаратор для E.G:

ip = '192.168.10.32'

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

ip = '192.168.10.32'
print([u for x in ip.split('.') for u in (x, '.')])

Выход

['192', '.', '168', '.', '10', '.', '32', '.']

Метод 5: Разделение с использованием линии разрыва: сплитлины ()

В случае необходимости сепаратора – это разрыв линии, мы можем использовать Сплитлины () Функция для разделения заданной строки на основе разрывов линии. Сплитлины () Встроенная функция используется для разрыва струн, разбивающих на границах линии.

Давайте посмотрим на следующий пример, чтобы увидеть, как Сплитлины () Функция работает:

text = """1. This is the first line.
2. This is the second line.
3. This is the third line."""
# If the first argument is set to True, the result includes a newline character at the end of the line.
print(text.splitlines(True))

Выход

['1. This is the first line.\n', '2. This is the second line.\n', '3. This is the third line.']

Заключение

Поэтому в этой статье мы обсудили различные методы разделить строку и хранить слова символов вместе с сепараторами/разделителями. Я настоятельно рекомендую вам прочитать наш блог Урок, если вы хотите освоить концепцию регулярных выражений Python.

Я надеюсь, что вам понравилось эту статью, и это поможет вам в вашем путешествии по кодированию Python. Пожалуйста, подпишитесь и оставайтесь настроенными для более интересных статей!

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

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

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

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

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

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

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

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

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @:

Оригинал: “https://blog.finxter.com/how-to-split-a-string-and-keep-the-separators/”