Perl正则表达式
perl正则表达式就是通过一串特别设计的字符串,可以按照我们的需求匹配、替换、转化目标字符串。本文主要是对一些常用的正则表达以及语法的总结以及举例,供广大喜爱Perl的同学交流学习。
操作符:
=~ 或 != 分别表示匹配与不匹配
$regx = "perl";
$string = "I like perl";
if ($string =~ $regx){
print "match";}
匹配、替换、转化
匹配:m/<regexp>/;或/<regexp>/;
如:$string =~ m/$regx/;
替换:s/<pattern>/<replacement>/
s/<pattern>/<replacement>/g:在末尾加上g表示把字符串中所有匹配<pattern>的模式全部替换为<replacement>。
如:$string =~ s/$regx/python/;
转化:tr/<pattern>/<replacemnt>/
如:$str =~ tr/A-Z/a-z/;
选项说明:
- g 匹配所有可能的模式
- i 忽略大小写
- x 忽略模式中的空白
得到匹配的字符串:
正则表达式中圆括号里匹配的模式,依次赋给系统变量:$1,$2,...。
my $string = "I get up 8:00 every morning";
if ( $string =~ /([0-9]+):([0-9]+)/ ){
print "$1:$2";}
转义符号\
有时我们需要匹配一些特殊符号,那么需要对其进行转义,需要在特殊字符前加上转义符\,如回车\\n,制表符\\t,斜杠\\和\/,引号\'和\",方括号\[和\],圆括号\(和\),美元号\$,上尖号\^,星号\*,点号\.,问号\?,加号\+等等。
如:匹配字符串中的美元符号:
$string = "I earn $123.7";
if ($string =~ /\$/){...}
正则表达式常用模式:
- . 匹配除换行符以外的所有字符
- x? 匹配 0 次或一次 x 字符串
- x* 匹配 0 次或多次 x 字符串,但匹配可能的最少次数
- x+ 匹配 1 次或多次 x 字符串,但匹配可能的最少次数
- .* 匹配 0 次或一次的任何字符
- .+ 匹配 1 次或多次的任何字符
- {m} 匹配刚好是 m 个 的指定字符串
- {m,n} 匹配在 m个 以上 n个 以下 的指定字符串
- {m,} 匹配 m个 以上 的指定字符串
- [] 匹配符合 [] 内的字符
- [^] 匹配不符合 [] 内的字符
- [0-9] 匹配所有数字字符
- [a-z] 匹配所有小写字母字符
- [^0-9] 匹配所有非数字字符
- [^a-z] 匹配所有非小写字母字符
- ^ 匹配字符开头的字符
- $ 匹配字符结尾的字符
- \d 匹配一个数字的字符,和 [0-9] 语法一样
- \d+ 匹配多个数字字符串,和 [0-9]+ 语法一样
- \D 非数字,其他同 \d
- \D+ 非数字,其他同 \d+
- \w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样
- \w+ 和 [a-zA-Z0-9]+ 语法一样
- \W 非英文字母或数字的字符串,和 [^a-zA-Z0-9] 语法一样
- \W+ 和 [^a-zA-Z0-9]+ 语法一样
- \s 空格,和 [\n\t\r\f] 语法一样
- \s+ 和 [\n\t\r\f]+ 一样
- \S 非空格,和 [^\n\t\r\f] 语法一样
- \S+ 和 [^\n\t\r\f]+ 语法一样
- \b 匹配以英文字母,数字为边界的字符串
- \B 匹配不以英文字母,数值为边界的字符串
- a|b|c 匹配符合a字符 或是b字符 或是c字符 的字符串
Perl正则表达式的更多相关文章
- Perl正则表达式例子
Perl正则表达式 一.介绍 正则表达式各语言都有自己的规范,但是基本都差不多,都是由元字符的组合来进行匹配:由于Nmap内嵌的服务与版本探测是使用的Perl正则规范,因此此篇博客记录一下Perl正则 ...
- Perl 正则表达式语法
1. 概要 Perl正则表达式是Boost.regex 默认行为,也可以将perl传入basic_regex 构造. boost::regex e1(my_expression); boost::r ...
- Perl 正则表达式
匹配:m/<regexp>;/ (还可以简写为 /<regexp>;/ ,略去 m)替换:s/<pattern>;/<replacement>;/转化: ...
- perl正则表达式第一周笔记
正则表达式基础 ^ 行首标志 $ 行末标志 如^cat即一整行只有cat这个单词,^则是一个空行 [ ] 字符组,用来匹配若干字符之一 如gr[ae]y,即grey或者gray - 在字符组内部,字 ...
- perl正则表达式第三周笔记
正则引擎的分类 正则引擎的分类 正则引擎的分类主要分两种: DFA:egrep.awk.lex.flex NFA:.NET.PHP.Perl.Ruby.Python.GNU Emacs.ed.sec. ...
- perl正则表达式第二周笔记
1.使用正则表达式修改文本 1.使用正则表达式修改文本 正则表达式的功能不只有查询,还可以对文本进行修改,例如替换 $var=~m/regex/i $var=~s/regex/replacement/ ...
- perl 正则表达式之匹配
一.用m//进行匹配 上篇用双斜线的写法表示模式,事实上是m//的简写,所谓简写,就是当用双斜线作为定界符的时候,可有省略开头的m. 不使用简写的时候,可以使用任何定界符表示模式,m().m<& ...
- posix,perl正则表达式区别
1.正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式.正规表示式或常规表达式或正规化表示法或正规表示法,是指一个用来描述或者匹配一系列符合 ...
- Perl正则表达式超详细教程
前言 想必学习perl的人,对基础正则表达式都已经熟悉,所以学习perl正则会很轻松.这里我不打算解释基础正则的内容,而是直接介绍基础正则中不具备的但perl支持的功能.关于基础正则表达式的内容,可参 ...
随机推荐
- Java GC策略
本文转自https://blog.csdn.net/rabbit_in_android/article/details/50386954 内存管理和垃圾回收 JVM内存组成结构 JVM栈由堆.栈.本地 ...
- 2017多校第8场 HDU 6138 Fleet of the Eternal Throne 思维,暴力
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6138 题意:给了初始区间[-1,1],然后有一些操作,可以r加上一个数,l减掉一个数,或者同时操作,问 ...
- Context-Aware Network Embedding for Relation Modeling
Context-Aware Network Embedding for Relation Modeling 论文:http://www.aclweb.org/anthology/P17-1158 创新 ...
- Leetcode 之Binary Tree Inorder Traversal(43)
树的中序遍历.先不断压入左结点至末尾,再访问,再压入右结点.注意和先序遍历的比较 vector<int> inorderTraversal(TreeNode *root) { vector ...
- phpcms v9表单向导添加验证码
要做留言板的功能,故用添加表单,想要在提交留言前加一个验证码的功能.网上的教程比较混乱,于是亲自实验了下,步骤如下: 首先是调用表单的页面加入验证码.表单js调用模版默认的是 \phpcms\temp ...
- python读写hdf5及cdf格式文件
Python write and read hdf5 file http://stackoverflow.com/questions/20928136/input-and-output-numpy-a ...
- google code-prettify 代码高亮插件使用方法
找代码高亮插件选了好久,还是这个使用起来比较方便. 先上链接:插件下载地址 官方使用方法地址 建议看官方的资料,我这里仅仅简要描述一下使用方法: 引入方法: 测试引入是否成功:herf 换成 自己放置 ...
- 【JBPM4】流程任务变量存取
任务变量与流程变量的操作相同,前者帮定任务ID,后者绑定流程ID. 添加任务变量 //创建流程引擎 ProcessEngine processEngine = Configuration.getPro ...
- Jquery 学习之路(五)grid绑定模板
最近在使用mvcpager时发现ajax分页需要使用Partial来实现,而且使用起来还是觉得不太方便.突然想自己做一个mvc的ajax分页,但是如果table直接用js输出就不好维护了. angul ...
- Centos7使用squid实现正向代理
正向代理:代理服务器帮助客户端(浏览器)实现互联网的访问 (1)代理服务器配置 1.安装squid yum install squid -y 2.编辑squid配置文件 #vim /etc/squid ...