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)

解决方法

  • [] -> 代表括号内的任意单个字符
    例如; 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