基础知识—正则表达式

以下列出 ?=、?<=、?!、?<! 的使用区别

https://www.runoob.com/regexp/regexp-syntax.html

举例:(?=.*[a-z_]) :
表达式:匹配a-z和下划线中字符前面的任意字符,因为如果能够匹配到a-z和下划线前面的任意一个字符,就代表字符串中至少出现了一次a-z或下划线中的字符,如果匹配失败就代表字符串中没有a-z或下划线中的字符

正则表达式

正则表达式教程https://www.runoob.com/regexp/regexp-tutorial.html

port re

# 原子:正则表达式中实现匹配的基本单位
# 元字符:正则表达式中具有特殊含义的字符

####################################
#以普通字符作为原子(匹配一个普通字符)
#####################################
a = "湖南湖北广东广西"
pat = "湖北"
result = re.search(pat, a)
print(result)
#########################################
# 匹配通用字符
# \w 任意字母、数字、下划线
# \W 和小写的w相反
# \d 十进制数字
# \D 除了十进制意外的值
# \s 空白字符
# \S 非空白字符
###########################################

b="13678927639"
pat2 = "\d\d\d\d\d\d\d\d\d\d\d"
print(re.search(pat2,b))

###########################################
#匹配数字,英文,中文
# 数字[0-9]
# 英文[a-z][A-Z]
# 中文 [\u4e00-\u9fa5]
###########################################
d ="!@$##%张三$%^%$^#boy&^^^^&%^*$123654#&^$%^#$%^#^%#$%^"
pat3 = r"[\u4e00-\u9fa5][\u4e00-\u9fa5]"
pat4 = r"[a-z][a-z]"
pat5 = r"[0-9][0-9]"
result1 = re.search(pat3,d)
result2 = re.search(pat4,d)
result3 = re.search(pat5,d)
print(result1,result2,result3)

##############################################
# 原子表 定义一组平等的原子
# 例如电话号码匹配
##############################################
telephone = "13689763549"
telepat = r"1[3578]\d\d\d\d\d\d\d\d\d"
print(re.search(telepat,telephone))

#############################################
# 元字符——正则表达式中具有特殊含义的字符
# .匹配任意字符 \n除外
# ^ 匹配字符串开始位置  ^136 以136开头
# $ 匹配字符串中结束的位置   6666$  以6结尾
# * 重复0次1次货多次前面的原子  \d* 可以没有数字,也可以1次或多次
# ? 重复一次或者0次前面的原子   \d? 可以没有数字,也可以有一次数字
# + 重复一次或多次前面的原子    \d+  不能没有数字,至少一次,也可以多次数字
#################################################
num = "137654326581359876545213823569854"
numpat ="..."  #匹配任意三个字符
print(re.search(numpat,num))
numpat2 = "^135\d\d\d\d\d\d\d\d"   # 匹配以135开头的11位字符
print(re.search(numpat2,num))
numpat3 = ".*9854$"   #匹配以9854结尾的字符串
print(re.search(numpat3,num))
numpat4 = "^1.8*"
print(re.search(numpat4,num))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值