perl学习笔记(七)正则表达式


前言

本文主要记录perl学习过程中的正则表达式。


7 正则表达式

# 正则匹配
$_ = "my name is zhangsan!";
if(/zhangsan/) {print "find zhangsan\n";} else {print "not find zhangsan\n";} # find zhangsan

7.1 元字符(点)

# 元字符 点 匹配任意一个字符, 不包括\n
$_ = "my name is zhan san!";
if(/zhan.san/) {print "find zhan san\n";} else {print "not find zhan san\n";} # find zhan san

7.2 量词(星号 加号 问号)

# 元字符量词 点星号 匹配任意多个字符
$_ = "my name is zhang bai san!";
if(/zhan.*san/) {print "find zhan bai san\n";} else {print "not find zhan bai san\n";} # find zhan bai san


# 元字符量词 点加号 匹配一个及其以上字符
$_ = "my name is zhansan!";
if(/zhan.+san/) {print "find zhansan\n";} else {print "not find zhansan\n";} # not find zhansan

# 元字符量词 点问号 匹配有一个或零个字符
$_ = "my name is zhansan!";
if(/zhan.?san/) {print "find zhansan\n";} else {print "not find zhansan\n";} # find zhansan

7.3 模式分组

#模式分组
$_ = "a b a b ";
# \g{1}表示重复第一个匹配   \g{2}表示重复第二个匹配
if(/(..)(..)\g{1}\g{2}/) {print "find out\n";} else {print "not find out\n";} # find out

7.4 择一匹配

#择一匹配
$_ = "you and me";
#匹配and和or
if(/you ((and)|(or)) me/) {print "find out\n";} else {print "not find out\n";}# find out

$_ = "you g me";
#匹配任意字母
if(/you [a-zA-Z] me/) {print "find out\n";} else {print "not find out\n";}# find out
#匹配除abcdefg外的字符,脱字符^取补集
if(/you [^abcdefg] me/) {print "find out\n";} else {print "not find out\n";}#not find out


7.5 字符集

$_ = "I have 88 dollar";
#匹配一个或者多个数字
if(/have [0-9]+ dollar/) {print "find out\n";} else {print "not find out\n";}# find out

$_ = "you g me";
#匹配任意数字字母下划线
if(/you \w me/) {print "find out\n";} else {print "not find out\n";}# find out
#匹配任意数字
if(/you \d me/) {print "find out\n";} else {print "not find out\n";}# not find out
#匹配任意数字外的字符相当于 ^\d
if(/you \D me/) {print "find out\n";} else {print "not find out\n";}# find out
#匹配任意数字和非数字,包括\n
if(/you \d\D me/) {print "find out\n";} else {print "not find out\n";}# find out
#匹配任意空格
if(/you \s me/) {print "find out\n";} else {print "not find out\n";}# not find out


总结

本文主要记录一下perl中正则匹配的用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值