python 正则表达式 提取网页中标签的中文

转载请注明出处 http://www.cnblogs.com/pengwang52/。

 

>>> p= re.compile(r'\<div class="comment-content comment-content_new"\>([^x00-xff]*)\<\/div\>')
>>> text='<div class="comment-content comment-content_new">测试</div> <div class="comment-content comment-content_new">学习正则</div>'
>>> for m in p.finditer(text):
...     print m.group(1)
...
测试
学习正则


如果 用findall 输出为中文字符编码
>>> m = re.findall(r'\<div class="comment-content comment-content_new"\>([^x00-xff]*)\<\/div\>','<div class="comment-content comment-content_new">测试</div> <div class="comment-content comment-content_new">学习正则</div>')
>>> print m
['\xe6\xb5\x8b\xe8\xaf\x95', '\xe5\xad\xa6\xe4\xb9\xa0\xe6\xad\xa3\xe5\x88\x99']

 

转载于:https://www.cnblogs.com/pengwang52/p/7470752.html

### 使用Python正则表达式进行提取Python中,`re`模块提供了强大的工具来处理字符串中的模式匹配和提取。为了更好地理解和应用这些功能,下面将详细介绍如何利用正则表达式执行数据提取。 #### 原始字符串声明方式 当编写涉及反斜杠字符的正则表达式时,建议使用带有前缀'r'的原始字符串表示法。这种方式可以避免转义序列被解释器误读,从而简化了复杂模式的设计[^1]: ```python pattern = r'\d+' # 匹配任意数量连续数字 ``` #### 编译正则表达式对象 通过编译一个特定的正则表达式模式到RegexObject实例,可以在后续多次调用该预编译的对象来进行高效的操作。这有助于提高性能特别是在频繁使用的场景下: ```python import re TAG_RE = re.compile(r'<[^>]+>') # 定义用于移除HTML标签正则表达式 ``` #### 提取操作方法 对于简单的单次匹配需求,可以直接采用`search()`函数;而如果目标是从整个文本串里找出所有符合条件的部分,则应该考虑运用`findall()`或迭代器版本`finditer()`。后者允许逐条访问每一个Match object,并从中获取更详细的分组信息[^3]: ```python # 查找第一个满足条件的内容 match = TAG_RE.search('<html><body>Hello</body></html>') if match: print(match.group()) # 获取全部匹配项列表 matches_list = TAG_RE.findall('<div id="header">Title</div><p>Description.</p>') for item in matches_list: print(item) # 遍历所有的匹配结果(推荐) iterator_matches = TAG_RE.finditer('<table border="1" cellspacing="0" cellpadding="8"><tr><td>Data</td></tr></table>') for m in iterator_matches: parts = m.group().strip("<>").split() tag_name, attrs = parts[0], " ".join(parts[1:]) print(f'Tag: {tag_name}, Attributes: [{attrs}]') ``` 上述代码展示了不同类型的提取手段及其应用场景。特别是最后一个例子说明了怎样解析包含属性在内的HTML标签结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值