首页 > 解决方案 > 以下代码中的 re.compile() 和 remove_tags() 是什么意思?

问题描述

在下面的数据预处理代码中,我知道 re.compile() 用于转换为正则表达式对象。但是 remove_tags() 会发生什么?这里要删除什么样的模式?我无法弄清楚存储在 TAG.RE 变量中的 re.compile() 中提到的正则表达式。

TAG_RE = re.compile(r'<[^>]+>')
def remove_tags(text):
return TAG_RE.sub('', text)

标签: regexpattern-matchingre

解决方案


  • [] -> 表示括号内的任何单个字符,
    例如;h[oa]t 找到 hot 和 hat,但没有命中

  • ^ -> 表示任何不在括号中的字符,
    例如;h[^oa]t 找到 hit,但不是 hot 和 hat

  • '+' -> 表示一个或多个字符。它是一个量词,用于指定要匹配的出现次数。例如; a+ 代表至少一个 a

来提问:-

  • [^>] -> 表示除 '>' 之外的任何单个字符
  • [^>]+ -> 代表任何单个字符,除了 '>' 一次或多次。
  • <[^>]+> -> 匹配以 < 开头的模式,之后出现除 > 之外的各种字符,然后以 > 结尾
# remove html tags using RegEx
import re
pattern = re.compile(r'<[^>]+') # tags look like <....>
result = pattern.sub('',text)   # replace them with blank

推荐阅读