为了账号安全,请及时绑定邮箱和手机立即绑定

Python:如何在不导入模块的情况下删除两个分隔符之间的文本

Python:如何在不导入模块的情况下删除两个分隔符之间的文本

紫衣仙女 2023-12-29 16:46:39
我搜索了很多线程,但它们都需要导入(BeautifulSoup、正则表达式)。输入是一个大字符串,其中多次出现分隔符(“<”、“>”) 我听说配对标签是一种很好的技术,但我不知道如何去做。示例(非常小)输入:实际输入是整个 HTML 代码。<!DOCTYPE html><html>example<head>hello<meta charset="utf-8">example2<meta/>期望的输出:example hello example2
查看完整描述

2 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

这是使用简单循环的简单易懂的方法:


str = '<!DOCTYPE html><html>example<head>hello<meta charset="utf-8">'

words = []

temp = ""

flag = 0

for i in str:

    if i=="<":

        flag = 0

        if temp:

            words.append(temp)

            temp = ""

    elif i==">":

        flag=1

    else:

        if flag==1:

            temp += i

print(words)   # prints ['example', 'hello']


查看完整回答
反对 回复 2023-12-29
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

将变量初始化tag_depth为零。


一次迭代一个字符的字符串。如果您看到一个<字符,则增加tag_depth,如果您看到一个>字符,则减少它。如果看到任何其他字符且tag_depth为零,则输出该字符。


tag_depth = 0

for c in mystring:

    if c == '<':

        tag_depth += 1

    elif c == '>':

        tag_depth -= 1

    elif tag_depth == 0:

        print(f"{c}", end=0)


查看完整回答
反对 回复 2023-12-29
  • 2 回答
  • 0 关注
  • 53 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信