正则表达式,在perl里也称为模式,是用来表示匹配(或不匹配)某个字符串的特征模板。通俗地说:虽然有无限多可能的文本字符串存在,但只要用一个模式就可以将它们干净利落地分成两组:匹配和不匹配。
将模式写在一对斜线中即可(//),为m//的简写形式
字符串与模式匹配成功,返回1,否则返回
绑定操作符(=~)表示用右边的模式来匹配左边的字符串,若匹配默认的$_,则可省略。
模式的内部可进行双引号形式的内插
模式匹配中的择一匹配:
竖线(|)表示“或”,表示要么匹配左边的内容,要么匹配右边的内容。即在匹配过程中,如果左边的模式匹配失败了,还可以用右边的模式再试试。
模式匹配中的字符集定义:一组可能出现的字符,通常写在方括号([])内表示,仅匹配单个字符;方便起见,也可用连字符(-)。
字符集的简写:
\d:匹配任意一个数字,等同于[0-9]
\w:“单词”字符,ASCII语意下等同于[a-zA-Z0-9]
\s:匹配任意空白符,等同于[\f\t\n\r](字符集内还有空格符本身)
字符集的反义简写:
\D:非数字字符,等同于[^\d]
\W:非单词符,等同于[^\w]
\S:非空白符,等同于[^\s]
模式替换:
定义:把变量中匹配模式的那部分内容替换成另一个字符串。
形式:$string =~s/A/B/,将字符串$string中符合模式A的内容替换成内容B(如果是$_变量则可简写为s/A/B/)。s///操作返回的是布尔值,替换成功为真,否则为假。
比较常用的修饰符:
/g:进行所有可能的的替换(默认情况只作第一次替换)
/i:进行大小写无关的替换
恭喜你,又学到了新知识。
如果对生物信息学习比较感兴趣,欢迎关注我的公众号:生物信息学习。每周至少会有一篇关于生物信息的文章更新。前期会介绍一些软件数据库和几种编程语言,后面会介绍生信领域的文章。大家有什么感兴趣的,欢迎留言。
领取专属 10元无门槛券
私享最新 技术干货