удалить n перед строкой

#python #python-3.x #regex #data-extraction

#python #python-3.x #регулярное выражение #извлечение данных

Вопрос:

Я хочу удалить ненужные r и n в начале каждого прописного слова и числа в этой строке. Я попробовал регулярное выражение. Не уверен, что здесь будет полезно регулярное выражение или какой-либо другой метод.

Это код, который я пытаюсь использовать:

 text = "nFamily n49 new nTom"

regex_pattern =  re.compile(r'.*n[A-Z][a-z]*|[0-9]*s')
matches = regex_pattern.findall(text)
for match in matches:
    text = text.replace(match," ")
print(text)
 

Ожидаемый результат:

 Family 49 new Tom
 

Комментарии:

1. Используйте re.sub(r'b[rn](?=[A-Zd])', "", text)

Ответ №1:

Вы можете использовать

 text = re.sub(r'bn(?=[A-Z0-9])', '', text)
 

Смотрите демонстрацию регулярных выражений.

Подробные сведения:

  • b — здесь, начало слова
  • n n буква
  • (?=[A-Z0-9]) — позитивный прогноз, который требует, чтобы заглавная буква ASCII или цифра присутствовали непосредственно справа от текущего местоположения.

Смотрите демонстрацию Python:

 import re
rx = r"bn(?=[A-Z0-9])"
text = "nFamily n49 new nTom"
print( re.sub(rx, '', text) )
# => Family 49 new Tom