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

2023-02-24 12:45:14 浏览数 (3)

前言

正则表达式,又称规则表达式,(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除外)

简单举例如下:

代码语言:python代码运行次数:0复制
import re

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

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

更多示例:

代码语言:python代码运行次数:0复制
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 = '%sZ' % 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
oldsZ
[]
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模块的函数以及更高级的用法进行介绍哈。

1 人点赞