请教perl语言,/(\d{4}(\-?))/这句话什么意思啊?
发布网友
发布时间:2023-05-03 08:19
我来回答
共2个回答
热心网友
时间:2023-10-18 23:05
这跟perl没关系,这是正则表达式,具体你可以百度一下:正则表达式。
这个正则是匹配一个字符串,这个字符串是4个数字,加一个横杠(可以没有横杠),比如:
1234
或
5555-
热心网友
时间:2023-10-18 23:06
这一正则在尝试寻找 连续 4 个数字, 及 1 个可有可无的 - (横杠)
但值得留意的是, 这里有两组 () , 在括号中能找到匹配的文字时, 会顺序存到 $1, $2 ... 中
$str = "1234";
$str =~ /(\d{4}(\-?))/ ;
if ( $1 and $2 ) { print "\$1 = '$1', \$2 = '$2'. number with - " }
elsif ( $1 ) { print "\$1 = '$1', \$2 = '$2'. number only" }
else { print "not matched" }
print "$/==================$/";
$str = "9876-";
$str =~ /(\d{4}(\-?))/ ;
if ( $1 and $2 ) { print "\$1 = '$1', \$2 = '$2'. number with - " }
elsif ( $1 ) { print "\$1 = '$1', \$2 = '$2'. number only" }
else { print "not matched" }