菜鸟教程 python 正则表达式,什么是python语言中的正则表达式
要成功匹配字符串,需要使用正则表达式模块、正则表达式匹配规则和要匹配的字符串。本文详细介绍了如何使用正则表达式实现字符匹配。有兴趣的可以看看。
00-1010正则表达式中的特殊字符正则表达式的使用-1正则例-2正则例-3要成功匹配字符串,需要使用正则表达式模块、正则表达式匹配规则和要匹配的字符串。这三个条件中,模块和字符串都准备好了,只有匹配规则异常灵活。今天这一章就是要知道正则表达式中的特殊字符,通过这些字符我们可以匹配出我们想要的数据。
目录
特殊字符描述\d匹配任何十进制数,与[0-9]一致\D匹配任何非数字\w匹配任何字母数字下划线和unicode字符集\W匹配非字母数字数据,下划线\s匹配任何空格字符,与[\n \t \r \v \f]相同\S匹配任何非空字符\A匹配。也称为通配符。
正则表达式中的特殊字符
接下来,我们来看一个小案例,帮助我们理解如何使用这些特殊字符。
进口re
Test_data=我叫尼奥,今年30岁。#将字符串赋给变量test _ data。
Result _ int=re.findall (\d ,test_data) #使用findall函数并传入 \d 的匹配规则来匹配test_data(仅限数字)
Result _ space=re.findall (\ s ,test_data) #使用findall函数并传入匹配规则 \d 以匹配test_data(仅空格)
Result _ str=re.findall (\ w ,test_data) #使用findall函数并传入匹配规则 \d 来匹配test_data(匹配字符串)
result _ str _ start=re . find all( \ AMy ,test _ data) #匹配以My开头的字符串
result _ str _ start _ null=re . find all( \ aMya ,test _ data) #匹配以Mya开头的字符串(没有mya,返回空列表)
Result _ str _ end=re.findall (old。\ z ,test _ data) #匹配以old结尾的字符串.
result _ str _ end _ null=re . find all( zold。\ z ,test _ data) #匹配以zold结尾的字符串。(zold不存在,返回空列表)
Result _ all=re.findall( . ,test _ data) #匹配除\n以外的所有字符(包括空格)
打印(result_int)
打印(结果空间)
Print(result_str)#从结果上看,\w比\d更高级,不仅匹配str,还匹配int(其实这里的int还是字符串)
打印(结果_字符串_开始)
打印(result_str_start_null)
打印(结果字符串结束)
打印(result_str_end_null)
#执行结果如下
# [3, 0]
# [ , , , , , , ]
# [M , y , N , a , M , e , I , s , N , e , o , I , M , 3 , 0 , y , e , a , r , s ,o , l ,
d]
# >>> [My]
# >>> []
# >>> [old.]
# >>> []
# >>> [M, y, , n, a, m, e, , i, s, , N, e, o, ,, , I, "", m, , 3, 0, , y, e, a, r, s, , o, l, d, .]
正则小案例 - 1
1、定义一个函数,判断传入参数是否包含有数字。
2、定义一个函数,判断传入参数是否含有数字,如果有则移除。
import redef have_number(data): # 定义一个判断是否存在数字的函数
result = re.findall(\d, data) # 利用 re 模块的 findall 函数的 \d 规则判断传入的 data 是否存在数字
print(result)
for i in result: # 利用 for 循环 判断 result 的结果,如果存在返回 True ;反之返回 False
return True
return False
def remove_number(data):
result = re.findall(\D, data)
print(result)
return .join(result)
if __name__ == __main__:
test_data_1 = "My name is Neo, Im 30 years old."
test_data_2 = "its a beautiful day to be with you"
result = have_number(test_data_1)
print(result)
result = remove_number(test_data_1)
print(result)
result = re.findall(\W, test_data_2) # 匹配非字母数字的数据以及下划线
print(result)
运行结果如下图:
正则小案例 - 2
1、定义一个 startwith 函数 判断传入数据是否是字符串的开头
2、定义一个 endwith 函数 判断传入数据是否是字符串的结尾
import redef startswith(sub, data):
_sub = \A{}.format(sub)
result = re.findall(_sub, data)
for i in result:
return True
return False
def endswith(sub, data):
_sub = {}\Z.format(sub)
result = re.findall(_sub, data)
if len(result) == 0:
return False
else:
return True
if __name__ == __main__:
result = startswith(My, test_data_1)
print(result)
result = endswith(old., test_data_2)
print(result)
执行结果如下:
正则小案例 - 3
1、python 内置函数 len() 是可以获取到字符串的长度的,但是当字符串中存在着空格符号的时候也会计算在长度内。
2、利用正则的知识,定义一个计算字符串真实长度的函数
import redef real_len(data):
result = re.findall(\S, data)
return len(result)
if __name__ == __main__:
test_data_1 = "My name is Neo, Im 30 years old."
test_data_2 = "its a beautiful day to be with you"
print(len(test_data_2))
result = real_len(test_data_2)
print(result)
运行结果如下:
以上就是Python语法学习之正则表达式的使用详解的详细内容,更多关于Python正则表达式的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。