perl /g

[oracle@oadb test]$ cat t2.pl 
my $str='1a2';
if ($str =~ /[b]*/){print "1111111111
"};
[oracle@oadb test]$ cat t2.pl 
my $str='1a2';
if ($str =~ /[b]*/){print "1111111111
"};
[oracle@oadb test]$ perl t2.pl 
1111111111

匹配 0 次或多次b



[oracle@oadb test]$ cat t2.pl 
my $str='1a2';
if ($str =~ /[b]?/){print "1111111111
"};
[oracle@oadb test]$ perl t2.pl 
1111111111

匹配 0 次或一次 b字符串



[oracle@oadb test]$ cat t2.pl 
my $str='1a';
if ($str =~ /[b]+/){print "1111111111
"};
[oracle@oadb test]$ perl t2.pl 
[oracle@oadb test]$ 


+ 匹配 1 次或多次b


[oracle@oadb test]$ cat t2.pl 
my $str='b1a';
if ($str =~ /[b]+/){print "1111111111
"};
[oracle@oadb test]$ perl t2.pl 
1111111111


[oracle@oadb test]$ cat t1.pl 
my $sql="where `lc`.`tb`.`xx` = 1 and `tb2` . `id2` = 2 or `id3` > 3 and `id4` >22";
 print "$sql is $sql
";
 foreach  ($sql =~ /(`w+`s*.?s*)/g){
    print "$_ is $_
";
    push (@str,$_);
    };
   $sql="";
   foreach (@str){
     $sql=$sql.$_;
    };
   $sql =~ s/s+.s+/./g;
   my @arr=split (/s+/,$sql);
   foreach (@arr){
    print "$_ is $_
";
   };
[oracle@oadb test]$ perl t1.pl 
$sql is where `lc`.`tb`.`xx` = 1 and `tb2` . `id2` = 2 or `id3` > 3 and `id4` >22
$_ is `lc`.
$_ is `tb`.
$_ is `xx` 
$_ is `tb2` . 
$_ is `id2` 
$_ is `id3` 
$_ is `id4` 
$_ is `lc`.`tb`.`xx`
$_ is `tb2`.`id2`
$_ is `id3`
$_ is `id4

/g模式匹配修饰符查找所有可能的匹配