Python正则表达式的小练习分享

目录
  • 匹配网址 url 的小练习
  • 匹配邮箱地址的小练习
  • 获取前端代码内容的练习

匹配网址 url 的小练习

定义一个函数,判断 url 是否是一个正常的地址。

定义一个函数,只获取 url 的域名部分

import re

url_ture = "https://www.csdn.net/"
url_false = "ftp://110.110.110.110:8080"

def check_url(url):
    result = re.findall('[a-zA-z]{4,5}://\w*\.*\w+\.\w+', url)

    if not len(result) == 0:
        return 'url 是一个合法的网站地址'
    else:
        return 'url 是一个不合法的网站地址'

def get_url(url):
    result = re.findall('https://(\w*\.*\w+\.\w+)', url)

    if not len(result) == 0:
        return result[0]
    else:
        return []

if __name__ == '__main__':
    result_true = check_url(url_ture)
    print(result_true)
    result_false = check_url(url_false)
    print(result_false)

    result_url_01 = check_url("http://csdn.com")
    print(result_url_01)
    result_url_02 = check_url("https://www.csdn.com")
    print(result_url_02)

    get_url_true = get_url(url_ture)
    print(get_url_true)
    get_url_false = get_url(url_false)
    print(get_url_false)

执行结果如下:

匹配邮箱地址的小练习

定义一个函数,获取邮箱的地址。

import re

email = "Neo@protonmail.com"

def get_email(email):
    # result = re.findall('[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[a-zA-Z]+', email)      # 这样写比较复杂,可以使用通配符
    result = re.findall('.+@.+\.[a-zA-Z]', email)
    return result

if __name__ == '__main__':
    get_email = get_email(email)
    print(get_email)

# >>> 执行结果如下:
# >>> ['Neo@protonmail.com']

获取前端代码内容的练习

接下来做一个稍微复杂一些的练习:

定义一个函数,获取一段前端代码中双引号包裹的内容。

定义一个函数,获取该段前端代码中所有的双引号包裹的内容

import re

html = ('<div class="s-top-nav" style="display:none;">'
        '</div><div class="s-center-box"></div>')		# 这是前端代码,暂时不用理解是什么意思

def get_html_data(html):
    re_g = re.compile('style="(.*?)"')      # 非贪婪模式获取 style 标签的内容
    result = re_g.findall(html)
    return result

def get_all_data_html(html):
    re_g = re.compile('="(.+?)"')
    result = re_g.findall(html)
    return result

if __name__ == '__main__':
    get_html_data = get_html_data(html)
    print(get_html_data)

    get_all_data_html = get_all_data_html(html)
    print(get_all_data_html)

# >>> 执行结果如下:
# >>> ['display:none;']
# >>> ['s-top-nav', 'display:none;', 's-center-box']

通过获取前端代码标签内容的例子,我们可以看出,只要找到字符串的规律,通过这些规律去定义正则匹配的规则就可以拿到想要的信息。

OK,今天的练习就到这里了。正则表达式最最核心最最重要的就是匹配的相关操作, findall 与 search 函数就是常用的两个函数,以及其它函数的匹配规律都是完全相同的,只不过它们返回的值会存在着不同,或者说这些函数的使用场景存在着一定的区别,但是返回的结果几乎都是相同的。

到此这篇关于Python正则表达式的小练习分享的文章就介绍到这了,更多相关Python正则表达式练习内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python语法学习之正则表达式的使用详解

    目录 正则表达式中的特殊字符 正则表达式的使用 正则小案例 - 1 正则小案例 - 2 正则小案例 - 3 要想成功的进行字符串的匹配需要使用到正则表达式模块,正则表达式匹配规则以及需要被匹配的字符串.在这三个条件中,模块与字符串都是准备好的,只有匹配规则异常的灵活,而今天这个章节就是认识一下正则表达式中的特殊字符,通过这些字符就可以针对我们想要的数据进行匹配. 正则表达式中的特殊字符 特殊字符 描述 \d 匹配任何十进制的数字,与[0-9]一致 \D 匹配任意非数字 \w 匹配任何字母数字下划

  • python正则表达式最详解

    目录 一.正则表达式–元字符 1. 数量词 2. 字符匹配 3. 边界匹配 4. 组 5. 匹配模式参数 二.方法 re.findall re.match group匹配对象 re.search re.compile 三.检索和替换 re.sub 替换字符串 总结 一.正则表达式–元字符 re 模块使 Python 语言拥有全部的正则表达式功能 1. 数量词 # 提取大小写字母混合的单词 import re a = 'Excel 12345Word23456PPT12Lr' r = re.fin

  • Python正则表达式总结分享

    注意:本文基于Python2.4完成:如果看到不明白的词汇请记得百度谷歌或维基,whatever. 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持的语法通常是不常用的部分.如果已经在其他语言里使用过正

  • python常用的正则表达式大全

    1.正则表达式 正则表达式是用来匹配与查找字符串的,从网上爬取数据自然或多或少会用到正则表达式,python的正则表达式要先引入re模块,正则表达式以r引导,例如: 其中**r“\d+”**正则表达式表示匹配连续的多个数值,search是re中的函数,从"abc123cd"字符串中搜索连续的数值,得到"123",返回一个匹配对象,结果如上. 2.字符串"\d"匹配0~9之间的一个数值 3.字符"+"重复前面一个匹配字符一次或者

  • Python 正则表达式详解

    目录 1.正则表达式是什么 2.1用正则表达式 2.2匹配原理 2.3常用函数 总结 1.正则表达式是什么 很简单就是一种字符串匹配,eg: 比如你在注册账户时我们需要对用户的用户名判断是否合法,这时候就需要对用户输入的检索,或者给你5-11位的数字你确定他是否为qq号. 2.1用正则表达式 import re 2.2匹配原理 import re msg = '董小姐桥边姑娘南方小姐' pattern = re.compile('董小姐') result = pattern.match(msg)

  • Python 正则表达式大全(推荐)

    目录 1 前言 2 基本语法 2.1 match函数 2.2 search 函数 2.3 sub 函数 3 特殊类语法 3.1 字符类 3.2 特殊字符类 3.3 重复匹配 3.4 非贪婪重复 3.5 圆括号分组 3.6 反向引用 3.7 锚点 3.8 带括号的特殊语法 1 前言 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串&quo

  • Python正则表达式的小练习分享

    目录 匹配网址 url 的小练习 匹配邮箱地址的小练习 获取前端代码内容的练习 匹配网址 url 的小练习 定义一个函数,判断 url 是否是一个正常的地址. 定义一个函数,只获取 url 的域名部分 import re url_ture = "https://www.csdn.net/" url_false = "ftp://110.110.110.110:8080" def check_url(url): result = re.findall('[a-zA-z

  • Python正则表达式学习小例子

    正则表达式是处理字符串的强大工具.作为一个概念而言,正则表达式对于Python来说并不是独有的.但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别. (1)匹配1-100之间的数 import re s = '100' # 1-100内的任意数字 ret = re.match(r'(100|[1-9]\d{0,1})$',s) print(ret.group()) (100|[1-9]\d{0,1})$ 100可以匹配100 | 或者匹配[1-9]中的一个数,然后后面\d是数字

  • Python正则表达式常用函数总结

    本文实例总结了Python正则表达式常用函数.分享给大家供大家参考,具体如下: re.match() 函数原型: match(pattern, string, flags=0)     Try to apply the pattern at the start of the string,      returning a match object, or None if no match was found. 函数作用: re.match函数尝试从字符串的开头开始匹配一个模式,如果匹配成功,返

  • Python正则表达式经典入门教程

    本文实例总结了Python正则表达式基本用法.分享给大家供大家参考,具体如下: 正则表达式在平时做文本处理(爬虫程序去解析html中的字段,在分析log文件的时候需要抓取一些关键数据)的时候经常会用到.一般我们会使用到Python的re库.如果正则表达式自己代码中反复被用到的时候,我们可以将这个正则表达式使用re.compile函数转换成一个object方便调用. match 将输入的字符串从第一个字符开始匹配,如果不匹配将会直接返回空. search 和match不同,search能自由的在字

  • 有趣的python小程序分享

    python可以简单优美,也很有趣,下面是收集的例子: 1.一句话开始一个http的文件服务器: $ python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... 在浏览器中就可以http://localhost:8000访问目录及文件了. 也可以直接指定端口: $ python -m SimpleHTTPServer 6666 如果想在代码中实现,也很简单: import SimpleHTTPServer import Soc

  • Python中最大最小赋值小技巧(分享)

    码代码时,有时候需要根据比较大小分别赋值: import random seq = [random.randint(0, 1000) for _ in range(100)] #方法1: xmax, xmin = max(seq), min(seq) #方法2: xmax, *_, xmin = sorted(seq) 从上面这个来看,看不出来方法2的优势来,不过我们常用的是比较两个数的大小,并选取: dx, dy = random.sample(seq, 2) #方法1: dx, dy = m

  • 关于Python形参打包与解包小技巧分享

    Python中的函数调用与c++不同的是将this指针直接作为self当作第一个形参进行处理,从而将静态函数与实例方法的调用形式统一了起来.在实际编程过程中,可以通过传递函数的地址.函数的形参的方式将所有函数(包括静态函数.类实例函数)的调用用统一的方式表达出来,方便统一接口和抽象. 待传递的2个函数如下: class Operation: @staticmethod def close_buy(): """ :return: """ print

  • 使用python将大量数据导出到Excel中的小技巧分享

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以上两个问题. (2)具体步骤如下: 1.第一步,安装openpyxl, 使用pip install openpyxl即可,但是在windows下安装的是2.2.6版本,但是centos自动安装的是4.1版本,(多谢海哥的提醒). 写的代码在windows下运行没问题,但centos上却报错了,说是e

  • Python中使用filter过滤列表的一个小技巧分享

    有的时候使用dir(Module),可以查看里面的方法,但是模块自带的属性"__"开头的也会显示,如下: >>> import random >>> dir(random) ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', '_Buil tinMethodType', '_M

  • Python 使用 PyQt5 开发的关机小工具分享

    前两天简单认识了一下PyQt5,通过练习开发了一款在Window下自定义关机的小工具, 代码如下: import os,sys,time from PyQt5 import QtCore,QtWidgets,QtGui class guanji(object): def pageShow(self,page): #设置窗口的位置和大小 page.setGeometry(400,400,400,200) #设置窗口的标题 page.setWindowTitle('Window shutdown')

随机推荐