You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Python正则表达式移除<>符号间的所有文本?

用Python正则移除尖括号包裹内容的解决方案

没问题,这事儿用Python的re模块就能轻松搞定!核心思路就是匹配所有<>之间的内容,然后将其替换为空字符串

具体实现代码

import re

# 原句子
original_sentence = "<S>Today is a <unk> sunny day and <num> children are playing outside </S>"

# 正则表达式:匹配所有<开头、>结尾的内容
pattern = r'<[^>]+>'

# 替换匹配到的内容为空字符串
cleaned_sentence = re.sub(pattern, '', original_sentence)

# 去除可能存在的多余空格(可选优化)
cleaned_sentence = re.sub(r'\s+', ' ', cleaned_sentence).strip()

print(cleaned_sentence)

代码细节解释

  • 正则表达式r'<[^>]+>'
    • < 精准匹配左尖括号;
    • [^>]+ 匹配任意不是右尖括号的字符^在方括号里表示取反,+确保至少匹配一个字符),这样不会误匹配跨多个尖括号的内容;
    • > 匹配右尖括号,完整锁定一对尖括号包裹的区域。
  • 最后一步的空格处理是可选操作:替换后可能出现连续空格(比如原句中<unk>前后的空格会变成a sunny),这一步能把连续空格合并成单个,同时去除首尾多余空格,让结果更整洁。

运行结果

执行代码后,输出正好是你想要的效果:

Today is a sunny day and children are playing outside

如果你的句子里没有嵌套的尖括号(比如<a<b>>这种复杂场景),这个方案完全够用。要是遇到嵌套情况,再调整正则逻辑就行,但从你的示例来看,这个简单正则就完美解决问题啦!

内容的提问来源于stack exchange,提问作者Crista23

火山引擎 最新活动