面试题答案
一键面试import re
html = "<div class='content'><p>这里是文本内容1</p><p>这里是文本内容2</p></div>"
pattern = re.compile(r'<p.*?>(.*?)</p>', re.DOTALL)
results = pattern.findall(html)
for result in results:
print(result)
解释:
re.compile(r'<p.*?>(.*?)</p>', re.DOTALL)
:<p.*?>
:匹配<p
标签开头,.*?
表示非贪婪匹配任意字符,直到遇到下一个>
。这样可以处理<p
标签内可能存在的其他属性。(.*?)
:使用非贪婪模式捕获<p>
和</p>
标签之间的内容,这部分内容就是我们想要提取的文本。</p>
:匹配</p>
标签结尾。re.DOTALL
:使.
匹配包括换行符在内的所有字符,以处理可能存在的多行文本情况。
pattern.findall(html)
:在给定的HTML字符串中查找所有符合正则表达式模式的内容,并以列表形式返回捕获组的内容,即<p>
标签内的文本。- 最后通过循环打印出提取到的文本内容。