#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