如何使用正则表达式从python中删除字符串中的标签?(不是HTML)

Tan*_*rad 12 python strip arcmap

我需要从python中的字符串中删除标签.

<FNT name="Century Schoolbook" size="22">Title</FNT>
Run Code Online (Sandbox Code Playgroud)

删除两端的整个标记的最有效方法是什么,只留下"标题"?我只看到过使用HTML标签做到这一点的方法,而这在python中对我没用.我正在使用这个特别适用于GIS程序ArcMap.它有自己的布局元素标签,我只需删除两个特定标题文本元素的标签.我相信正则表达式应该可以正常使用,但我对任何其他建议持开放态度.

Dom*_*nic 54

这应该工作:

import re
re.sub('<[^>]*>', '', mystring)
Run Code Online (Sandbox Code Playgroud)

对于每个人说正则表达式不是正确的工具:

问题的背景是关于常规/无上下文语言的所有异议都是无效的.他的语言主要由三个实体:a = <,b = >,和c = [^><]+.他想删除任何事件acb.这直接将他的问题描述为涉及无上下文语法的问题,并且将其定性为常规语法并不困难.

我知道每个人都喜欢"你不能用正则表达式解析HTML"的答案,但OP不想解析它,他只是想进行简单的转换.


Ami*_*ini 6

请避免使用正则表达式。尽管正则表达式可以处理简单的字符串,但如果您得到复杂的字符串,将来就会遇到问题。

您可以使用 BeautifulSoupget_text()功能。

from bs4 import BeautifulSoup

text = '<FNT name="Century Schoolbook" size="22">Title</FNT>'
soup = BeautifulSoup(text)

print(soup.get_text())
Run Code Online (Sandbox Code Playgroud)