概述
Perl语言的正则表达式功能非常强大,基本上是常用语言中最强大的,很多语言设计正则式支持的时候都参考Perl的正则表达式。以下面一个例子入门:perl实现匹配一个标量是否是数字。
#!/usr/bin/perl
$rely = <STDIN>; #键盘输入
if($rely =~ m/^[0-9]+$/){
print("is digits");
}else{
print("not is digits");
}
- m/……/中间省略号放入正则表达式。
- m代表尝试用正则表达式匹配。
- =~用来连接要匹配的字符串以及正则表达式。
perl会保存括号内的子表达式实际匹配的文本,Perl通过变量 1, 1 , 2,$3等等,分别指向第一组、第二组、第三组括号内的子表达式实际匹配的文本。正则表达式匹配成功一次,Perl就会设置一次。
例如:以下两种写法,并不会影响匹配结果,但是却会影响到子表达式的值。
摄氏温度和华氏温度的转换(对于上面保存子表达式的应用)
#!/usr/bin/perl
$input = <STDIN>; #接收用户输入的一行文本
chomp($input); #去掉文本末尾的换行符
if($input =~ m/^([-+]?[0-9]+)([CF])$/){
#如果已经匹配。$1保存数字,$2保存"C"或者"F"
$InputNum = $1;
$type
= $2;
if($type eq "C"){
#如果输入摄氏温度,则计算华氏温度
$celsius = $InputNum;
$fahrenheit = $celsius;#($celsius * 9 / 5) + 32;
}else{
#计算摄氏温度
$fahrenheit = $InputNum;
$celsius = ($fahrenheit - 32) * 5 / 9;
}
printf "%.2f C is %.2f Fn",$celsius, $fahrenheit;
}else{
print("error.");
}
运行结果:
如果将程序中的正则匹配条件加上浮点数,则 1、 1 、 2、$3就分别代表了别的意思。
Perl语言自身的元字符
此部分提到的是Perl语言的元字符,而不是正则表达式的元字符。
Perl语言实现表达式替换
$var =~ s/regex/replacement/ //意思是将能够匹配正则表达regex的字符串都替换为replacement。
最后
以上就是会撒娇手链为你收集整理的正则表达式(二)扩展应用(结合perl语言)的全部内容,希望文章能够帮你解决正则表达式(二)扩展应用(结合perl语言)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复