软件测试|带你了解Python正则表达式模块(一)

举报
霍格沃兹测试开发 发表于 2023/02/24 12:44:56 2023/02/24
【摘要】 前言正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式...

前言

正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开来的,后来在广泛运用于Scala 、PHP、C# 、Java、C++ 、Objective-c、Perl 、Swift、VBScript 、Javascript、Ruby 以及Python等等。

Python正则模块介绍

Python的正则模块是re模块,是Python自带的模块,不需要额外安装,re模块拥有下列作用:

  • re 模块使 Python 语言可以实现全部的正则表达式功能
  • re 模块也拥有实现正则匹配的函数

基本语法

表达式 描述
\d 匹配任何十进制操作,与[0-9]一致
\D 匹配任意非数字
\w 匹配任何数字字母下划线字符
\W 匹配非字母数字下划线
\s 匹配任何空格字符
\S 匹配任意非空字符
\A 匹配字符串的开始
\Z 匹配字符串的结束
. 匹配任何字符(\n除外)

简单举例如下:

import re

sentence = 'hello muller, where are you from'
print(re.findall('from\Z', sentence))

print(re.findall('ffrom\Z', sentence))
-------------------------------
输出结果如下:
['from']
[]

更多示例:

import re


def had_number(sectence):
    result = re.findall('\d', sectence)
    print(result)
    for i in result:
        return True
    return False


def remove_number(sectence):
    result = re.findall('\D', sectence)
    print(result)
    return ''.join(result)


def startswith(sub, sectence):
    _sub = '\A%s' % sub
    result = re.findall(_sub, sectence)
    for i in result:
        return True
    return False

def endswith(sub, sectence):
    _sub = '%s\Z' % sub
    print(_sub)
    result = re.findall(_sub, sectence)
    print(result)
    if len(result) != 0:
        return True
    else:
        return False


def real_len(sectence):
    result = re.findall('\S', sectence)
    print(result)
    return len(result)



if __name__ == '__main__':
    sectence = 'i am muller, i am 34'
    result = had_number(sectence)
    print(result)
    result = remove_number(sectence)
    print(result)

    sectence = 'hello messi, i am muller. i am 34 year\'s old'
    print(re.findall('\W', sectence))

    result = startswith('hell', sectence)
    print(result)
    result = endswith('olds', sectence)
    print(result)
    print(len(sectence))
    result = real_len(sectence)
    print(result)

----------------------------------
输出结果如下:
['3', '4']
True
['i', ' ', 'a', 'm', ' ', 'm', 'u', 'l', 'l', 'e', 'r', ',', ' ', 'i', ' ', 'a', 'm', ' ']
i am muller, i am 
[' ', ',', ' ', ' ', ' ', '.', ' ', ' ', ' ', ' ', "'", ' ']
True
olds\Z
[]
False
44
['h', 'e', 'l', 'l', 'o', 'm', 'e', 's', 's', 'i', ',', 'i', 'a', 'm', 'm', 'u', 'l', 'l', 'e', 'r', '.', 'i', 'a', 'm', '3', '4', 'y', 'e', 'a', 'r', "'", 's', 'o', 'l', 'd']
35

总结

本文对Python 的re模块进行了简单的介绍,下一篇文章我们将对re模块的函数以及更高级的用法进行介绍哈。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。