У меня есть текст с артефактами HTML, где теги < и > были удалены, поэтому теперь мне нужно что-то, что будет соответствовать маленькому p, за которым следует заглавная буква, например

pThe next day they....

И мне также нужно что-то, что будет улавливать трейлинг /p, что проще. Их нужно удалить, т.е. заменить на "" в python.

Какой RE я бы использовал для этого? Спасибо! Стефан.

0
gouwsmeister 13 Окт 2009 в 14:26

2 ответа

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

re.sub(r"(/?p)(?=[A-Z]|$)", r"<\1>", str)

Возможно, вы захотите расширить утверждение границы (здесь (?=[A-Z]|$)) дополнительными символами, такими как пробелы.

1
Gumbo 13 Окт 2009 в 14:35

У меня есть. Вы используете обратные ссылки,

import re
smallBig = re.compile(r'[a-z]([A-Z])')

...
cleanedString = smallBig.sub(r'\1', dirtyString)

Это удаляет строчную букву, но сохраняет заглавную букву в тех случаях, когда '<' и '>' тегов html были удалены, и вы сидите с таким текстом, как

PНекоторый текст нового абзаца /p

Быстро и грязно, но это работает в моем случае.

1
gouwsmeister 13 Окт 2009 в 14:38