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