Разделить по суффиксу с регулярным выражением Python

Я хочу разделить строки только суффиксами. Например, я хотел бы иметь возможность разделить dord word на [dor,wor] .

Я, однако, что \wd будет искать слова, которые заканчиваются на d . Однако это не дает ожидаемых результатов

 import re re.split(r'\wd',"dord word") ['do', ' wo', ''] 

Как я могу разделить суффиксами?

4 Solutions collect form web for “Разделить по суффиксу с регулярным выражением Python”

 x='dord word' import re print re.split(r"d\b",x) 

или

 print [i for i in re.split(r"d\b",x) if i] #if you dont want null strings. 

Попробуй это.

В качестве лучшего способа вы можете использовать re.findall и использовать r'\b(\w+)d\b' качестве своего регулярного выражения, чтобы найти остальное слово перед d :

 >>> re.findall(r'\b(\w+)d\b',s) ['dor', 'wor'] 

Поскольку \w также фиксирует цифры и подчеркивание, я бы определил слово, состоящее из [a-zA-Z] букв с классом символов [a-zA-Z] :

 print [x.group(1) for x in re.finditer(r"\b([a-zA-Z]+)d\b","dord word")] 

См. Демонстрацию

Если вам интересно, почему ваш оригинальный подход не сработал,

 re.split(r'\wd',"dord word") 

Он находит все экземпляры буквы / числа / подчеркивания перед «d» и разбивается на то, что он находит. Так оно и получилось:

do [rd] wo [rd]

и разбивать на строки в скобках, удаляя их.

Также обратите внимание, что это может расколоться в середине слов, так что:

 re.split(r'\wd', "said tendentious") 

разделил бы второе слово на два.

  • Как разделить строку, используя 2 разделенных параметра?
  • Разделить метки в python
  • Сортировка и размещение списка с использованием панд
  • Как Python разделяется персонажем, но поддерживает этот символ?
  • Чтение файла .txt по строкам в Python
  • Python List Comprehensions Переменная цикла разделения
  • Python: разделение, разметка и объединение в одну строку
  • извлечь значения / переименовать имя файла в python
  • Python - лучший язык программирования в мире.