请perl大神帮忙看分析一下这句 if($_=~/(MR[OSE]\S+$strTime\S+)/) 是什么意思,谢谢!
1个回答
展开全部
总体是个 if() 条件判断,判断表达式是一个绑定匹配
$_ 是默认变量,
=~ 是绑定操作符(但不需要 =~ 绑定的,匹配时候不绑定就默认匹配 $_)
一对斜杠 // 括起来的是匹配模式
里面匹配的字符要求如下:
$_ 里某一个位置出现一个M,后面跟着一个R,再后面跟着O、S、E中三个字符的其中一个,再紧接着的\S+表示一个以上的非空字符,然后再跟着一个$strTime变量包含的字符串,然后还是一个以上的非空字符
“MR[OSE]\S+$strTime\S+”用一对圆括号括着,表示捕获变量,将成功匹配的字符串保存到变量 $1 中
以上
鉴于这是很基础的Perl语言知识,不知道楼主到底是哪里不明白,暂且先这样回答了
$_ 是默认变量,
=~ 是绑定操作符(但不需要 =~ 绑定的,匹配时候不绑定就默认匹配 $_)
一对斜杠 // 括起来的是匹配模式
里面匹配的字符要求如下:
$_ 里某一个位置出现一个M,后面跟着一个R,再后面跟着O、S、E中三个字符的其中一个,再紧接着的\S+表示一个以上的非空字符,然后再跟着一个$strTime变量包含的字符串,然后还是一个以上的非空字符
“MR[OSE]\S+$strTime\S+”用一对圆括号括着,表示捕获变量,将成功匹配的字符串保存到变量 $1 中
以上
鉴于这是很基础的Perl语言知识,不知道楼主到底是哪里不明白,暂且先这样回答了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询