![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Perl 正则
Perl 正则
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
scan724
这个作者很懒,什么都没留下…
展开
-
表达式中的一些常用模式.
表达式中的一些常用模式./表达式/ 结果. 匹配除换行符以外的所有字符x? 匹配 0 次或一次 x 字符串x* 匹配 0 次或多次 x 字符串,但匹配可能的最少次数x+ 匹配 1 次或多次 x 字符串,但匹配可能的最少次数.* 匹配 0 次或多次的任何字符.+ 匹配 1 次或多次的任何字符{m} 匹配刚好是 m 个 的指定字符串{m,n} 匹配在 m个 以上 n个 以下 的指定原创 2015-07-28 17:05:43 · 446 阅读 · 0 评论 -
perl /g
[oracle@oadb test]$ cat t2.pl my $str='1a2';if ($str =~ /[b]*/){print "1111111111\n"};[oracle@oadb test]$ cat t2.pl my $str='1a2';if ($str =~ /[b]*/){print "1111111111\n"};[oracle@oadb test]$ pe原创 2016-12-21 19:55:56 · 800 阅读 · 0 评论 -
perl 单引号解析
[root@jenkins ~]# cat a1.pl my $start_dt = $ARGV[0]; my $end_dt = $ARGV[1]; my $str=`echo --start-datetime='$start_dt' --stop-datetime='$end_dt'`; print "\$str is $str\n";[root@je原创 2016-12-20 12:13:14 · 991 阅读 · 0 评论 -
perl ?
x? 匹配 0 次或一次 x 字符串 /cg?i/ 找到 c 后面跟着 0个或是 1个 g ,再跟着 i 的字符串,如同/cg{0,1}i/原创 2017-01-10 17:33:12 · 325 阅读 · 0 评论 -
perl 正则捕获 /(?<request_time>\d+(?:\.\d+)?)\s+/
2.3.2 grok 正则捕获:\s+ 和 [\n\t\r\f]+ 一样 1、命名分组格式为(?),反向引用时用\k2、命名分组的匹配的结果存在在变量%+变量中,取命名分组值,$+{grp name}.2.3.2 grok 正则捕获1、命名分组格式为(?),反向引用时用\k2、命名分组的匹配的结果存在在变量%+变量中,取命名分组值,$+{grp name}.[e原创 2017-01-10 18:40:10 · 2625 阅读 · 0 评论 -
perl (?<grp name>) (?: ...)
\s+(?\d+(?:\.\d+)?)\s+1、命名分组格式为(?),反向引用时用/k2、命名分组的匹配的结果存在在变量%+变量中,取命名分组值,$+{grp name}.3、反向引用也可以用/g1,/g{1},/g{-1},/g{-2}等,负表示分组的倒数每几个分组.(?: ...) 是 只集群,不捕获的圆括弧原创 2017-01-10 20:28:29 · 986 阅读 · 0 评论 -
perl 循环截取字符串
my $sql="where `lc`.`tb`.`xx` = 1 and `tb2` . `id2` = 2 or `id3` > 3 and `id4` >22";#my $sql='where `lc` = 1 and `tb2` . `id2` = 2 or `id3` > 3 and `id4` >22'; foreach ($sql =~ m/(`\w+`\s*\.?\s*)/g原创 2016-12-21 17:27:07 · 1609 阅读 · 0 评论 -
perl + 匹配前导模式一次或者多次
Vsftp:/data01/mysqllog/binlog# cat a2.pl$_="aaaa@[2]sasas";if ($_ =~/.*?(\@\[[0-9]+\]).*/){print "\$id is $1\n"};Vsftp:/data01/mysqllog/binlog# perl a2.pl$id is @[2]Vsftp:/data01/mysqllog/bin原创 2016-12-15 16:26:17 · 2482 阅读 · 0 评论 -
mysql 闪回表工具
use HTTP::Date qw(time2iso str2time time2iso time2isoz); use POSIX;my $SDATE = strftime("%Y-%m-%d",localtime());if ( $#ARGV < 4 ){ print "please input like binglog-0001 '2013-07-01 00:原创 2016-12-17 13:17:49 · 970 阅读 · 0 评论 -
正则<1>
/x :添加空格. /x修饰符允许你在模式中加入任何数量的空白,以方便阅读. 例如: (/-? \d+ \.? \d* /x) 等同于 (/-?\d+\.?\d*/)[root@dr-mysql01 lx1]# cat a1.pl $_='aa333.dd';if ($_ =~ /[a-z]+\d+ \.[a-z]+/){print "1111\n"};[root@d原创 2015-07-29 10:43:28 · 456 阅读 · 0 评论 -
perl 正则或匹配
if ($_ =~ /.*\s+"(POST|GET)\s*(.*?)\s*HTTP.*?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/)10.252.142.174 - - [26/Nov/2015:20:28:02 +0800] "POST /api/register/device/detail HTTP/1.1" 200 77 0.008 123.173.1原创 2015-11-26 20:51:25 · 1017 阅读 · 0 评论 -
perl | 匹配多个
zjzc01:/root/test# cat a2.pl $a="1 a 2 3 ";if ($a =~/(a|b)/){print "1111111\n"};zjzc01:/root/test# perl a2.pl 1111111zjzc01:/root/test# cat a2.pl $a="1 b 2 3 ";if ($a =~/(a|b)/){print "11111原创 2015-11-27 09:21:44 · 3527 阅读 · 0 评论 -
perl 正则详解
用/s 来匹配任意字符 默认情况下,点号(.)无法匹配换行符,这对大多数单行匹配的情况是合适的。 . 圆点用于匹配除换行符外的任何单个字符 + 意味着一个或多个相同的字符 .+ 匹配任意单个字符至少一次 .* 所有任意数量字符。与前一字符结合,可不出现字符 -? ##零个或一个减号 \d+ #一个或多个数字 \原创 2016-10-13 09:40:14 · 338 阅读 · 0 评论 -
perl /m
[root@backoffice01 ~]# cat a1.pl my $_="aa2bb3cc";if ($_=~/aa$\n^2bb\n3cc/){print "1111111111\n"};if ($_=~/aa\n^2bb\n3cc/m){print "2222222222\n"};[root@backoffice01 ~]# perl a1.pl 2222222222原创 2016-10-13 21:17:36 · 116 阅读 · 0 评论 -
perl 正则前导字符
uat-prx02:/root# cat a1.pl my $str="123";if ($str =~/(abc)*/){print "111111111\n"};uat-prx02:/root# perl a1.pl 111111111匹配 0 次或多次 abc 字符串uat-prx02:/root# cat a1.pl my $str="abc";if ($str =原创 2016-10-13 22:15:11 · 532 阅读 · 0 评论 -
匹配“is outside location”
is outside location 怎么匹配?? 匹配0个或1个该前一个字符.* 所有任意数量字符。 与前一字符结合,可不出现字符。/*************************"is outside location"表达式;\"\s*(?(\S+\s+).*)\"输出:{ "str": [ [ "is outside原创 2016-09-06 19:33:52 · 2153 阅读 · 0 评论 -
正则点号和问号 +
[root@oaapp ~]# cat aa192.168.3.2192.168.3x2192.168.3xy2[root@oaapp ~]# sed -i 's/192.168.3.2/192.168.99.99/' aa[root@oaapp ~]# cat aa192.168.99.99192.168.99.99192.168.3xy2 点号匹配任意单个字符原创 2016-11-01 19:20:50 · 2223 阅读 · 0 评论 -
5.2.1 模式修饰词
5.2.1 模式修饰词/i 修饰词是说同时匹配大写或者小写(以及在 Unicode 里的标题)/s 和 /m 修饰词并不涉及任何古怪的东西。它们只是影响 Perl 对待那些包含换行符的匹配的态度。元字符 "." 匹配除了换行符以外的任何单个字符,因为它的传统含义是匹配一行内的某个字符。不过带有/s时,"." 元字符也可以匹配一个换行符,因为已经告诉Perl 忽略该字符串可能原创 2016-11-17 16:07:11 · 1006 阅读 · 0 评论 -
perl 正则匹配多个
Vsftp:/root# cat k1.pl my $_='upDaTe';if( $_ =~ /^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i){print "1111111111111\n";};Vsftp:/root# perl k1.pl 1111111111111原创 2016-12-06 19:26:55 · 5024 阅读 · 0 评论 -
取关键字下第2行
open( A, "<", "abc" ) || die "$!\n"; @count=(); while (){ $num++; if ($_ =~ /error/i) {$b=$num; print "\$b is $b\n"; open( B, "<", "abc" ) || die "$!\n";原创 2016-12-16 14:03:27 · 330 阅读 · 0 评论