正则练习题 1 已知字符串: info = 'baidu' 用正则模块提取出网址:"http://www.baidu.com"和链接文本:"baidu" 2 字符串:"one1two2three3four4" 用正则处理,输出 "1234" 3 已知字符串:text = "JGood is a handsome boy, he is cool, clever, and so on..." 查找所有包含'oo'的单词。 Python正则表达式是爬虫开发中不可或缺的工具,它能帮助我们从复杂的文本中提取出需要的信息。这里我们将详细探讨三个正则练习题及其解题思路。 **练习题1**: 题目要求从字符串`info = 'baidu'`中提取出网址`"http://www.baidu.com"`和链接文本`"baidu"`。由于提供的`info`字符串并未包含完整的URL,我们假设原始字符串是HTML格式,如`'<a href="http://www.baidu.com">baidu</a>'`。这需要我们解析HTML并提取链接和文本。我们可以使用正则表达式`"[w.]*baidu\.*\w*"`来匹配: ```python import re info = '<a href="http://www.baidu.com">baidu</a>' pattern1 = re.compile(r"[w.]*baidu\.*\w*") f1 = pattern1.findall(info) print(f1) # 输出: ['www.baidu.com', 'baidu'] ``` **练习题2**: 对于字符串`"one1two2three3four4"`,我们需要提取出所有的数字,即`"1234"`。可以使用`\d{1}`来匹配单个数字,然后通过`findall`获取所有匹配项: ```python info1 = "one1two2three3four4" pattern2 = re.compile(r'\d{1}') f2 = pattern2.findall(info1) print(f2) # 输出: ['1', '2', '3', '4'] ``` 要将这些数字连接成一个字符串,可以使用`join()`函数: ```python result = ''.join(f2) # 输出: '1234' ``` **练习题3**: 在字符串`"JGood is a handsome boy, he is cool, clever, and so on..."`中查找所有包含'oo'的单词。可以使用`\w*oo\w*`来匹配这样的单词: ```python info3 = "JGood is a handsome boy, he is cool, clever, and so on..." pattern3 = re.compile(r'\w*oo\w*') f3 = pattern3.findall(info3) print(f3) # 输出: ['cool', 'clever'] ``` 这展示了如何在Python中使用正则表达式进行文本匹配。`re.compile()`用于创建正则表达式模式,`findall()`则用来查找所有匹配项。在实际爬虫开发中,正则表达式常常被用于从HTML、XML等结构化数据中提取关键信息,如URL、电子邮件地址、日期等。 正则表达式的强大之处在于它的灵活性和可扩展性。你可以根据需要调整模式来匹配特定的字符串模式。例如,如果需要匹配以`http`或`https`开头的完整URL,可以使用`r'(http|https):\/\/[\w.]+\.+\w*'`。如果要提取出字符串中的所有数字,不论连续还是间隔,可以使用`r'\d+'`。 学习和掌握正则表达式不仅可以提高爬虫的效率,也能在文本处理、数据分析等领域大显身手。在Python中,`re`模块提供了丰富的功能,包括匹配、替换、分割等,是处理文本的得力助手。
- 粉丝: 26
- 资源: 5315
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助