本文共 748 字,大约阅读时间需要 2 分钟。
-- Start
--更多参见: -- 声 明:转载请注明出处 -- Last Updated on 2012-05-13 -- Written by ShangBo on 2012-05-12 -- End正则表达式还支持简单的条件判断结构,格式如下:
(?if then |else)
其中的 if 部分是特殊的表达式,而 then 和 else 部分是普通的正则表达式,else 部分是可选的。
1. if 部分可以测试捕获,下面是一个简单的例子。
#!/usr/bin/perlmy $testText = "#test#";if($testText =~ m/(#)?\w+(?(1)#|%)/) { print "匹配成功 #test# \n";}$testText = "#test";if($testText =~ m/(#)?\w+(?(1)#|%)/) { print "匹配成功 #test\n";} else { print "匹配失败 #test\n";}结果如下:匹配成功 #test#匹配失败 #test我们来看看其中的条件判断结构 ( ?(1) #| %) ,其中红色部分是 if 部分,绿色部分是 then 部分, 蓝色部分是 else 部分。 ?(1) 用来测试 (#)? 是否匹配了 # 号。2. if 部分可以是环视结构,下面是一个简单的例子。
#!/usr/bin/perlmy $testText = "num 8 is my favorite number";if($testText =~ m/(?(?<=num )\d|\w+)/) { print "匹配成功\n";}上面正则表达式的意思是,如果你是\d,那么它前面必须是num 。