我有一个包含<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)
答案 0 :(得分:2)
使用HTML解析器(如this built-in one)读取文件。 Do not try来识别带有正则表达式的代码标签!然后可以使用s.replace(".","").replace(",","").replace(";","")