美文网首页Perl小推车生信相关
perl学习-day6-Perl正则表达式

perl学习-day6-Perl正则表达式

作者: 下午三点的闲暇 | 来源:发表于2019-11-05 15:37 被阅读0次

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
Perl的正则表达式的三种形式,分别是匹配,替换和转换;
匹配:m// (还可以简写//,略去m)
替换:s///
转化:tr///
这三种形式一般都和=~ 或!~ 搭配使用,=表示相匹配,!表示不匹配。

1 匹配操作符

匹配操作符m//用于匹配一个字符串语句或者一个正则表达式,示例如下:

#!/usr/bin/perl
$bar="I am runoob site. Welcome to runoob site.";
if ($bar =~/run/){
     print  "第一次匹配\n";
}else{
    print "第一次不匹配\n";
}
$bar = "run";
if ($bar=~/run/){
  print "第二次匹配\n";
}else{
  print "第二次不匹配\n";
}

执行以上程序,输出结果为:

第一次匹配
第二次匹配

模式匹配修饰符

i 忽略模式中的大小写
m 多行模式
o 仅赋值一次
s 单行模式
x 忽略模式中的空白
g 全局匹配
cg 全局匹配失败后,允许再次查找匹配串

2 正则表达式变量

perl处理完后会给匹配到的值存在三个特殊变量名:
`:匹配部分的前一部分字符串&:匹配的字符串
$' : 还没有匹配的剩余字符串
实例:

#!/usr/bin/perl
$string = "Welcome to runoob site.";
$string = ~ m/run/;
print "匹配前的字符串:$`\n";
print "匹配的字符串:$&\n";
print "匹配后的字符串:$'\n";

执行以上程序输出结果为:

匹配前的字符串: welcome to 
匹配的字符串: run
匹配后的字符串: oob site.

3 替换操作符

替换操作符s/// 是匹配操作符的扩展
s/PATTERN/REPLACEMENT/
实例

#!/usr/bin/perl
$string = "Welcome to google site.";
$string = ~s/google/runoob/;
print "$string\n";

执行以上程序输出结果为:

Welcome to runoob site.

4 转换操作符

实例:
将变量$string 中的所有小写字母转换为大写字母:

#/usr/bin/perl
$string = 'Welcome to runoob site.';
$string =~ tr/a-z/A-Z/;
print "$string\n";

执行以上程序输出结果为:

WELCOME TO RUNOOB SITE.

以下实例使用 /s 将变量 $string 重复的字符删除:

实例

#!/usr/bin/perl
 
$string = 'runoob';
$string =~ tr/a-z/a-z/s;
 
print "$string\n";
执行以上程序输出结果为:

runob

更多实例:

$string =~ tr/\d/ /c;     # 把所有非数字字符替换为空格
$string =~ tr/\t //d;     # 删除tab和空格
$string =~ tr/0-9/ /cs    # 把数字间的其它字符替换为一个空格。

相关文章

  • perl学习-day6-Perl正则表达式

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、...

  • R 正则表达式

    前言 R中的正则表达式模式有三种 1、扩展正则表达式:默认方式 2、Perl风格正则表达式:设置参数perl = ...

  • Effective Perl-chapter3

    今天这个主要是介绍perl语言中的正则表达式,perl的正则表达式本身就相当于一门语言,而且这门语言甚至比perl...

  • centos系统下安装nginx

    1、pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式...

  • 学习正则表达式.epub

    【下载地址】 《学习正则表达式》从正则表达式的基本概念讲起,到编写完整的sed和Perl脚本,再到转换HTML文件...

  • 正则表达式篇 之三(BRE和ERE区别)

    POSIX规范 常见的正则表达式记法,其实都源于Perl,实际上,正则表达式从Perl衍生出一个显赫的流派,叫做P...

  • 【Perl编程-6】正则表达式--匹配

    perl语言的强大之处就在于他的正则表达式,Perl的正则表达式的三种形式,分别是匹配,替换和转化: 匹配:m//...

  • Learning Perl 学习笔记 Ch7 正则表达式(一)漫

    正则表达式 是Perl最著名的特性,在Perl中使用正则表达式的简易方式是将要匹配的文本保存在$_中,然后用一对斜...

  • 【Perl】——6. 正则表达式

    2021.2.6持续更新中。。。 《Perl语言入门》 1. 正则表达式简介 正则表达式(regular expr...

  • Perl基础系列合集

    ​Perl学习01之标量数据 Perl学习02数组和哈希使用 Perl学习03之流程控制结构 Perl学习04之I...

网友评论

    本文标题:perl学习-day6-Perl正则表达式

    本文链接:https://www.haomeiwen.com/subject/shasbctx.html