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

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

Сообщение Anonymous »

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

Код: Выделить всё

patt = r"(?:bc)?(.*?)(?:ef)?"
a = re.sub(patt, r"\1", "bcdef")  # d - as expected
a = re.sub(patt, r"\1", "abcdefg")  # adg - as expected

# I'd like to get `d` only without `a` and `g`

# Trying to remove `a`:
patt = r".*(?:bc)?(.*?)(?:ef)?"
a = re.sub(patt, r"\1", "bcdef")  # empty !!!
a = re.sub(patt, r"\1", "abcdef")  # empty !!!

# make non-greedy
patt = r".*?(?:bc)?(.*?)(?:ef)?"
a = re.sub(patt, r"\1", "bcdef")  # d - as expected
a = re.sub(patt, r"\1", "abcdef")  # `ad` instead of `d` - `a` was not captured

# make `a` non-captured
patt = r"(?:.*?)(?:bc)?(.*?)(?:ef)?"
a = re.sub(patt, r"\1", "abcdef")  # ad !!! `a` still not captured
Я также пытался использовать re.search, но безуспешно.
Как я могу извлечь только d ( подстрока между необязательными подстроками bc и ef) из abcdefg?
Тот же шаблон должен возвращать hij при применении к hij.

Подробнее здесь: https://stackoverflow.com/questions/793 ... substrings
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Извлечение подстроки между необязательными подстроками
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Извлечение подстроки между необязательными подстроками
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Вставьте запятую между буквенно-цифровыми подстроками и небуквенно-цифровыми подстроками.
    Anonymous » » в форуме Php
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Извлечение подстроки PHP. Получить строку перед первым '/' или всю строку.
    Anonymous » » в форуме Php
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Извлечение подстроки между xml string java
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

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