\s 代表空格
+ 代表重复一次或一次以上
\s+ 代表一个或者一个以上空格
[oracle@jhoa ~]$ cat a3.pl
$command ="ls -ltr";
my ($binary,$var)=split /\s+/,"$command";
print "\$bibary is $binary\n";
print "\$var is $var\n";
[oracle@jhoa ~]$ perl a3.pl
$bibary is ls
$var is -ltr
#####################################################
正则表达式
m#[|&><;]#
if ($command =~ m#[|&><;]#) {
m/<regexp>;/ 可以简写成/<regexp>;/ 略去m
[oracle@jhoa ~]$ cat a4.pl
$command = ";";
if ($command =~ m#[|&><;]#) {
print "ok\n";
}
[oracle@jhoa ~]$ perl a4.pl
ok
[oracle@jhoa ~]$ cat a4.pl
$command = "&";
if ($command =~ m#[|&><;]#) {
print "ok\n";
}
[oracle@jhoa ~]$ perl a4.pl
ok
[oracle@jhoa ~]$ cat a4.pl
$command = "#";
if ($command =~ m#[|&><;]#) {
print "ok\n";
}
[oracle@jhoa ~]$ perl a4.pl
###########################################################
[oracle@jhoa ~]$ cat a4.pl
$command = "> | m";
if ($command =~ m#[|&><;]#) {
my @array=split /\|/,"$command";
print "\@array is @array:\n";
}
[oracle@jhoa ~]$ perl a4.pl
@array is > m:
按| 分割,赋值给数组@array
#############################################################
$command =~ /\|\s*(less|grep|wc)/
匹配| 0个或多个空格 在跟less grep 或wc
##############################################################
\b
表示单词边界:
[oracle@jhoa ~]$ cat a5.pl
$command = "lsn ";
if ($command =~/ls\b/ ){
print "ok\n"}
;
[oracle@jhoa ~]$ perl a5.pl
[oracle@jhoa ~]$
只会匹配到ls 不会匹配lsn
#############################################################
grep m/^$binary\b/,@allow_command or grep m/^$binary\b/,@allow_command2
$binary 匹配数组元素
#######################################################################
字符正则匹配:
$var = "abccc";
if ($var =~ /ab/) {
print ("ok\n");
}
数组正则匹配:
[oracle@jhoa ~]$ cat a7.pl
use strict;
use Switch;
use Sys::Hostname;
use File::Basename;
my $host = hostname;
my $prompt = "$host >";
my @allow_command=(
"/bin/cat",
"/bin/ls",
);
my @allow_command2=map {basename("$_") } @allow_command;
print "@allow_command2\n";
if (grep m/ls/,@allow_command2 ) {
print "11111111111111111\n";
}else {
print "2222222222222222\n";}
[oracle@jhoa ~]$ perl a7.pl
cat ls
11111111111111111
此时ls 匹配数组元素
[oracle@jhoa ~]$ cat a7.pl
use strict;
use Switch;
use Sys::Hostname;
use File::Basename;
my $host = hostname;
my $prompt = "$host >";
my @allow_command=(
"/bin/cat",
"/bin/ls",
);
my @allow_command2=map {basename("$_") } @allow_command;
print "@allow_command2\n";
if (grep m/lsa/,@allow_command2 ) {
print "11111111111111111\n";
}else {
print "2222222222222222\n";}
[oracle@jhoa ~]$ perl a7.pl
cat ls
2222222222222222
lsa 不匹配数组元素
perl 正则
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:如何优化buffer_cache
下一篇:latch 为什么消耗CPU
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
perl 正则匹配嵌套结构
有这么一道题。。aaa bbb #if defined(__MMI_DEL__) ccc #endif ddd eee #if defined(__MMI_DEL__) fff &nb
正则表达式 perl 正则 div 嵌套 动态正则表达式 -
Perl正则表达式
perl正则表达式
职场 休闲 perl -
正则表达式--Perl
其他网址Perl 正则表达式 | 菜鸟教程简介 正则表达式(regular e
perl 正则表达式 字符串 修饰符