问题描述
在下面的数据预处理代码中,我知道 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