正则单行和多行处理
发布时间:2020-12-14 01:28:03 所属栏目:百科 来源:网络整理
导读:m 将待匹配串视为多行,^符号匹配字符串的起始或新的一行的起始;$符号匹配任意行的末尾。以下例只匹配第一行为a,否则无匹配;sh-3.2$ cat a6.pl $line='abc';if ($line =~ /^(.*)$/m){print $."n"};sh-3.2$ perl a6.pl a当成多行处理,只能匹配到a$ ---匹配的
m 将待匹配串视为多行,^符号匹配字符串的起始或新的一行的起始;$符号匹配任意行的末尾。 以下例只匹配第一行为a,否则无匹配; sh-3.2$ cat a6.pl $line='a b c'; if ($line =~ /^(.*)$/m){print $&."n"}; sh-3.2$ perl a6.pl a 当成多行处理,只能匹配到a $& ---匹配的内容 s 将待匹配串视为单行。可以匹配n sh-3.2$ cat a6.pl $line='a b c'; if ($line =~ /^(.*)$/s){print $&."n"}; sh-3.2$ perl a6.pl a b c ----------------------------------------------------------------------------------------------------------- /s 把多行当成单行处理 sh-3.2$ cat a5.pl #!/usr/bin/perl use strict; use DBI; my $dbName = 'orcl'; my $dbUser = 'test'; my $dbUserPass = 'test'; my $dbh = DBI->connect("dbi:Oracle:$dbName",$dbUser,$dbUserPass) or die "can't connect to database "; if ($#ARGV <0){ print "请输入一个参数n"; exit(-1); } my $var=$ARGV[0]; my $sql = $var; if ($var =~ /selects+(.+)s+froms+.*/is){ $a = $1}; chomp ($a); my @arr = (split /,/,"$a"); foreach (@arr){ chomp ($_); print $_." "; } my $sth = $dbh->prepare($sql); $sth->execute(); while (my @arr = $sth->fetchrow_array()){ print "n@arrn"; } sh-3.2$ perl a5.pl "select a.session_id,a.sql_id,a.blocking_session,a.sample_time,a.module,a.PROGRAM,a.event,b.SQL_TEXT from v$active_session_history a,v$sqlarea b where a.sql_id = b.sql_id" | head -10 a.session_id a.sql_id a.blocking_session a.sample_time a.module a.PROGRAM a.event b.SQL_TEXT 1635 1bnt1kmfb8y30 05-JAN-15 11.38.04.823 AM SQL*Plus sqlplus@jhoa (TNS V1-V3) select * from dba_objects order by 1,2,3,4,5 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |