位置: 编程技术 - 正文

关于Perl里面正则表达式规范(perl-v)

编辑:rootadmin
1,定界符 =~ m/there/; =~ s/there/here/; 还有类型的定界符: =~ /there/ =~ m#there#; =~ s#there#here#; =~ m(there); =~ s(there)(here); =~ m{there}; =~ s{there}{here}; =~ m[there]; =~ s[there][here]; =~ m,there,; =~ s,there,here,; =~ m.there.; =~ s.there.here.; =~ m|there|; =~ s|there|here|; =~ m'there'; =~ s'there'here'; 2,修改符 修改符一般放在语句最后一个正斜杠(或者其他分隔符)的后面,修改符还可在匹配范式内定义,这是用(? 修改符)来实现的。 /x 允许在范式中加上注释和额外的空白字符,以提高程序的可读性。 /i 允许不分大小写的匹配范式。 /s 单行方式,决定了圆点 . 是否匹配换行符,使用了/s,圆点就匹配换行符,否则就不匹配。 比如: #!/usr/bin/perl use strict; use warnings; my $string = ".n."; print "The original string is: $stringn"; my $num = $string =~ s|(.)|#|sg; print "$num occurences change, and be changed to: $stringn"; exit; /m 多行方式,决定了脱字号 ^ 和美圆符 $ 是否匹配换行符,如果不用/s,^和$只能定位在字串的开始和结束处,它们并不匹配嵌入的换行符,这种情况等同于A和Z,否则不仅仅匹配字串的开始和结束,也匹配刚好处在嵌入换行符前后的一个位置。 /o 仅仅一次计算表达式的值 /e 将替代字符串作为一个表达式(仅仅在替代操作时有效) /g 是一个全局修改符。另外,/g与while使用能在字串的所有匹配中进行遍历。修改符/G必须与/g一起使用,用来匹配前一个/g匹配的停止位置。 如 #!/usr/bin/perl use strict; use warnings; my $string = "~sdadAZ.'sDa#!3_C-!"; print "The original string is: $stringn"; my $num = $string =~ s.w.#.g; print "$num occurences change, and be changed to: $stringn"; exit; 3,正则里一些特殊字符 () 将表达式结组 [] 寻找一组字符 d 等于 [0-9] D 等于 [^0-9] w 等于 [0-9A-Za-z_] W 等于 [^0-9A-Za-z_] s 等于 [fnrt ] S 等于 [^fnrt ] . 等于 [^n] 4,关于一些特殊符号 b 不属于空白字符,向前缩进一个字符 t 属于空白字符,匹配制表符 r 属于空白字符,匹配回车符 a 不属于空白字符,匹配闹钟符 e 不属于空白字符,匹配转义符 不属于空白字符,匹配八进制符 x1B 不属于空白字符,匹配十六进制符 c[ 不属于空白字符,匹配控制字符 属于空白字符,匹配空格 属于空白字符,匹配制表符 f 属于空白字符,匹配换页符 n 属于空白字符,匹配换行符 不属于空白字符,功能不详 c 不属于空白字符,功能不详 x 不属于空白字符,功能不详 5,注意正则里的选择符的特殊性 选择运算符是所有运算符中优先级最低的,这意味着它最后执行。 6,正则里的限定符的一些经典用法 限定符常常与一些字符或词联合使用 * 匹配任意数个; + 匹配一个或多个; ? 匹配零个或一个; {n} 匹配 n 个; {n,m} 匹配 n 至 m 个; {n,} 匹配 n 和 n 个以上; 限定符贪婪好像与生俱有的。在缺省状态下,*或+限定符匹配满足正则表达式的一个范式的最大实例数。可用?号显式的规定限定符的不贪婪。如果问号放在另一个限制符之后(甚至另一个问号之后),都可以使限定符不贪婪。 7,声明与断言 首先注意声明的长度为 0; Perl种有一组控制大小写和换码的声明: u 使下一个字母变大写; l 使下一个字母变小写; U 使文本的剩余字符变成大写; L 使文本的剩余字符变成小写; Q 会除字母之外的其他字符进行换码处理,直至遇到 E 声明、常规表达式结束或者字串结束。 A声明和脱字符号(^)匹配字串的开始; Z声明和美元符号($)匹配字串的结束或刚好在字串结束前的换行符; z 只匹配字串的结束; b 匹配一个单词(字)边界; B 匹配一个非单词(字)边界; (?#text) 忽略括号内的注释文本; (?:pattern) 与组一致,但匹配时不生成$1,$2; (?imsx:pattern) 与组一致,但匹配时不生成$1,$2,在特定的风格有效期间,内嵌风格匹配修饰符; (?=pattern) 前看声明,如果正则表达式在下一次匹配 pattern 风格,就开始匹配,而且不影响匹配效果。如/w+(?=t)/将匹配制表符是否恰好在一个字w+后面出现,并且制表符不添加到$&的值中; (?!pattern) 如果正则表达式在后面不匹配 pattern ,才会开始匹配。如/foo(?!bar)/,只有当出现 foo,并且后面不出现 bar 时才开始匹配; (?<=pattern) 后看声明,只有在pattern已经匹配下面的表达式,并且不将 pattern 的结果放入$&变量中,才匹配下面的语句。如/(?<=t)W+/匹配制表符是否恰好在W+前出现,但又不将制表符送到$&中; (? (?[code]) 表示对 code 的使用是试验性的。如果返回真,就认为是与(?:pattern)断言同一行里的匹配。code 不插入变量。这个断言仅仅在 use re 'eval' 编译指示符时才有效; (?>pattern) 如果类型锁定在当前位置,就使用单独的 pattern 匹配子字符串。如正则表达式/^(?>a*)ab/永远不会匹配,因为语句(?>a*)将匹配字符串开头所有的 a 字符,并删除与 ab 匹配的字符 a; (!<=pattern) 非后看声明,与后看声明意思相反; (!=pattern) 非前看声明,与前看声明意思相反; (?(condition)yes-pattern|no-pattern) 条件表达式——条件语句或者是一个圆括号中的整数,或者是一个断言; (?(condition)yes-pattern) (?imsx) 嵌入风格匹配修饰符。当要把表达式修改符嵌入在变量中,然后把变量用在不指定自己的修饰符的一般规则表达式中; (?-imsx) 这个断言很有用——后面带任何内容都会关闭修饰符,直到出现另一个嵌入的修饰符。 8,向后引用 Perl的正则表达式引擎允许使用前面匹配好的值,这些值叫做向后引用。 例如: =~ m/(w)W*(w)W*(w)W*(w)W*4W*3W*2W*1/; =~ s/(w)W*(w)W*(w)W*(w)/$4$3$2$1/;

推荐整理分享关于Perl里面正则表达式规范(perl-v),希望有所帮助,仅作参考,欢迎阅读内容。

关于Perl里面正则表达式规范(perl-v)

文章相关热门搜索词:perl中的$_,perl中的$_,perl中的$_,perl常用命令,perl中chomp,perl中的$_,perl中qw,perl中的$_,内容如对您有帮助,希望把文章链接给更多的朋友!

Perl 获取shell命令的执行结果 方法有很多:1.重定向shell的标准输出或标准错误输出到某临时文件,然后再从临时文件中读出执行结果。这个办法的好处是可以把标准输出和标准错误输

Perl ASCII 字符判断 主要还是看ASCII码的值,$str=~m/[^-]/$str=~m/[^x0-x7f]/要注意反斜线的作用,转义符,一定不要少!

Perl Mysql数据库操作实现代码 一.安装DBI模块步骤1:从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件:ReadmeDBI.ppdDBI.tar.gz步骤2:在DOS窗口下,temp目录中运行

标签: perl-v

本文链接地址:https://www.jiuchutong.com/biancheng/372441.html 转载请保留说明!

上一篇:只有一行的Perl程序第1/3页(只有一行的矩阵的逆矩阵)

下一篇:Perl 获取shell命令的执行结果(perl 获取参数)

  • 小规模纳税人定期定额征收的怎么报税
  • 企业所得税是什么意思
  • 视同销售的销项税怎么计算?
  • 已出库未开票要交税吗
  • 材料采购暂估入账
  • 购买生产设备上税怎么算
  • 银行电子回单是原始凭证吗
  • 土地增值税预征率
  • 购买的员工福利需要缴纳印花税
  • 用白纸写的收据怎么入帐?
  • 房屋所有权变更登记证书
  • 非盈利组织捐赠支出
  • 酒店收入简易征收会计核算是怎样的?
  • 手撕发票的税点是多少
  • 购买股票相关税费会计分录
  • 劳务公司差额征收税率是多少
  • 主营业务收入会计英语
  • 软件企业销售服务符合增值税即征即退吗
  • 购进商品没收到货怎么办
  • 少计提增值税0.01计入营业外
  • 公司职员培训与管理
  • 简易计税分包款进项税可以抵扣吗
  • 公司筹建期间发生的业务招待费,如何税前扣除
  • 付给银行的手续费分录
  • 房地产企业的沙盘模型制作费会计处理
  • win10电脑声道怎么设置
  • 苹果手机怎么修改默认输入法
  • 消防费用怎么做分录
  • 对公账户转到私人账户要手续费吗
  • PHP:pg_convert()的用法_PostgreSQL函数
  • 营改增后房租收入怎么交税
  • 普票部分红冲,还需要退回原发票吗
  • 公司缴纳残保金怎么做账
  • 应收账款余额在借方表示谁欠谁
  • 真菌感染手指甲空了
  • css spirit
  • 帝国cms配置数据库
  • 福利费工会经费教育经费计提比例
  • 公司费用计入什么科目
  • 2个公司的法人怎么注销
  • 商业承兑贴现几个点
  • 开具免税的发票,"税率"栏该如何填开?
  • sqlserver数据库和mysql区别
  • 保税仓库税收政策
  • 企业资金管理是什么意思
  • 受托代销商品款是什么类账户
  • 开发研究的定义
  • 一般纳税人是指哪些人群
  • 核定征税是什么意思
  • 转让股权溢价账务处理会计分录
  • 房屋装修费计入长期待摊费用
  • 房东减免部分房租
  • 预售期的房子是否可以买卖
  • 抵债资产如何做债权转让
  • 代付电费开发票
  • 小微企业免征的增值税属于政府补助吗
  • 软件测试收费标准2019
  • 公司有主营业务收入没有主营业务成本
  • 税控盘的主要功能
  • mysql获取当前日期时间函数
  • centos7怎么配置yum源
  • windowsxp
  • UPnPFramework.exe - UPnPFramework进程介绍
  • 32位与64位操作系统怎么区分从32位和64位的概念上进行讲述
  • vc精华氧化变黄
  • mssvr.exe - mssvr是什么进程 什么用
  • suse linux教程
  • js设计模式有什么用
  • unity2020商店
  • jquery提交表单调用serialize方法
  • python3m
  • 自定义dialogfragment
  • vps 备份
  • Android带有注册界面的简单app
  • python多线程操作
  • python 隐函数作图
  • jquery easyui datagrid实现增加,修改,删除方法总结
  • 企业吸收合并资质
  • 山东省水资源税征收标准
  • 如何建立内部控制缺陷认定的定型标准和定量标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设