在 python 中使用正则表达式从字符串中删除特定模式

Removing specific pattern from a string using regex in python

我正在尝试使用以下代码删除模式

x = "mr<u+092d><u+093e><u+0935><u+0941><u+0915>" 
pattern = '[<u+0-9de>]'
re.sub(pattern,'', x)

输出

mr

这个输出对于给定的样本字符串实际上是正确的,但是当我运行这个代码到语料库时,它删除了所有出现的'de'以及数字等。我想要这些只有在使用 < > 时才会替换东西。

你需要把 <> 放在外面,因为结构总是

  • <
  • 开始
  • 接下来是 u\+
  • 十六进制中的 4 个字符 [0-9a-f]{4} 来自 Unicode 定义
  • >结束
pattern = '<u\+[0-9a-f]{4}>'
re.sub(pattern,'', x)

REGEX DEMOCODE DEMO