Perl learning log 0712

正则表达式

序列

要匹配序列abba,写在两个斜线之间。

$_ = "yabba dabba doo";
if (/abba/){
    print "It matched!\n";
}

yabba dabba doo
一次匹配成功,匹配操作符就返回真。若模式中有括号,则会返回错误消息。//可以匹配所有字符串。

# practice
while (<STDIN>){
    chomp;
    if (/fred/){
        print "\tmatched!\n";
    }
    else {
        print "\tDoesn't match!\n";
    }
}

通配符

**.**可以匹配除换行符外任意单个字符。
匹配点或\需转义,\N和.效果一样。

重复操作符

?意味着前一个字符可以出现一次或不出现。
*前一个字符可以出现无数次,也可以一次都不出现。
/B.*m/寻找以B开头,以m结尾的字符串。
+前一个字符可以匹配一次或多次。
匹配具体次数可以写在{}中。
{2,3}重复两次以上三次以内。
()利用反向引用重复匹配找到的字符
/(.)\1/

$_ = "yabba dabba doo";
if (/y(....) d\1/){
    print "It matched!\n";
}

\g{N},其中g表示分组,N就是原来的数字编号。

择一匹配

模式中的竖线字符|,表示则以匹配,要么左侧部分匹配要么右侧部分匹配。

字符集

[abcwxy]某个字符是这7个字符中的任意一个,就算匹配成功。可用连字符指定字符范围。[a-ce-z]。像[a-zA-Z]这样的字符集可以匹配所有的英文大小写字母。[0-9]可以匹配任意一个数字。
^表示排除,[^def]排除def字符。

/i修饰可进行大小写无关的匹配

/yes/i


其他的下次再写

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值