regex - 以下代码中的 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