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

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

前言

正则表达式,又称规则表达式,(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模块的函数以及更高级的用法进行介绍哈。

相关文章
|
7天前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第41天】在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
7天前
|
Java Serverless Python
探索Python中的并发编程与`concurrent.futures`模块
探索Python中的并发编程与`concurrent.futures`模块
14 4
|
13天前
|
测试技术 持续交付 Apache
性能测试不再愁!Python+JMeter+Locust,三步打造高性能应用
【9月更文挑战第4天】随着互联网的发展,软件性能成为衡量应用成功的关键。性能测试确保应用稳定高效运行,但复杂环境和多样需求带来了挑战。Python、JMeter和Locust三款工具可构建高效全面的性能测试方案。Python语法简洁,库丰富;JMeter提供图形界面,支持多种协议;Locust基于Python,简单易用且高度可扩展。结合三者,能满足复杂需求,保证灵活性与高效性。无论初学者还是资深工程师,都能确保应用高性能运行。
21 1
|
19天前
|
Python
像导入Python模块一样导入ipynb文件
像导入Python模块一样导入ipynb文件
|
17天前
|
Web App开发 测试技术 API
自动化测试之美:使用Selenium和Python进行Web应用测试
【8月更文挑战第31天】在软件开发的快节奏世界中,自动化测试如同一束明灯,照亮了质量保证之路。本文将引导你通过Selenium和Python的强大组合,探索如何构建高效的Web应用测试框架。我们不仅会讨论理论,还会深入代码,从一个简单的示例开始,逐步扩展至更复杂的场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。让我们一同揭开自动化测试的神秘面纱,体验它的魅力所在。
|
17天前
|
Web App开发 XML 测试技术
自动化测试框架设计:以Python和Selenium为例
【8月更文挑战第31天】在软件开发的快节奏中,自动化测试成为确保产品质量的关键步骤。本文将引导读者了解如何结合Python语言和Selenium工具来设计一个高效的自动化测试框架。通过浅显易懂的语言和实际代码示例,我们将探索自动化测试框架的核心组件,并学习如何实现它们。无论你是测试新手还是希望提升自动化技能的开发者,这篇文章都将为你打开一扇通向高效软件测试的大门。
|
19天前
|
Python
如何在 Python 中导入模块
【8月更文挑战第29天】
19 1
|
19天前
|
Python
|
19天前
|
数据采集 JSON 算法框架/工具
我常用的几个经典Python模块
我常用的几个经典Python模块
|
3天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:如何用Selenium和Python打造高效测试脚本
【9月更文挑战第13天】在软件开发的海洋中,自动化测试是那抹不可或缺的亮色。它不仅提升了测试效率,还保障了产品质量。本文将带你领略使用Selenium和Python构建自动化测试脚本的魅力所在,从环境的搭建到脚本的编写,再到问题的排查,每一步都是对软件质量把控的深刻理解和实践。让我们开始这段探索之旅,解锁自动化测试的秘密吧!
5 0