Как удалить запятую, точку с запятой и точку с запятой между двумя тегами кода в строке? - PullRequest
1 голос
/ 20 мая 2019

У меня есть строка (комментарий Javadoc), которая содержит <code>... теги.Это выглядит примерно так:

<code>System.out</code>.
@param project The project to display a description of.
Must not be <code>null;</code>.

Я хочу иметь возможность удалять запятую (,), точку остановки (.) И точку с запятой (;) между тегами <code>...

Это должно выглядеть примерно так:

<code>Systemout</code>.
@param project The project to display a description of.
Must not be <code>null</code>.

Я пробовал следующее:

from bs4 import BeautifulSoup

var = '''Prints the description of a project (if there is one) to
        <code>System.out</code>.
        @param project The project to display a description of.
        Must not be <code>null;</code>.'''

soup = BeautifulSoup(var, 'html.parser')

for a in soup.find_all('code'):
  print (a.string)

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

РЕШЕНИЕ

matches =  re.sub('<code>(.*?)</code>', lambda m: "<code>{}</code>".format( m.group(1).replace(".","").replace(",","").replace(";","")), var, flags=re.DOTALL)

1 Ответ

2 голосов
/ 20 мая 2019

Чтение файла с помощью HTML-парсера, например , встроенного . Не пытайтесь идентифицировать теги кода с помощью регулярных выражений! Тогда удаление можно сделать с помощью s.replace(".","").replace(",","").replace(";","")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...