如何删除字符串中两个代码标签之间的逗号,句号和分号?

时间:2019-05-20 09:23:37

标签: python nlp

我有一个包含<code>...</code>标记的字符串(Javadoc注释)。看起来像这样,

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

我希望能够删除<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 个答案:

答案 0 :(得分:2)

使用HTML解析器(如this built-in one)读取文件。 Do not try来识别带有正则表达式的代码标签!然后可以使用s.replace(".","").replace(",","").replace(";","")

进行删除