tr/ / / 替换操作符不支持正则表达式 也不具备双引号替换能力
m/ /  s/ / / 都支持正则表达式,并且可以提供或限制双引号替换能力

$string = "25abc8";
$string =~ /abc(?=[0-9])/;
(?=pattern) 前看声明,如果正则表达式在下一次匹配 pattern 风格,就开始匹配,而且不影响匹配效果.如/\w+(?=\t)/将匹配制表符是否恰好在一个字\w+后面出现,并且制表符不添加到$&的值中;
$matched = $&; # $&为已匹配的模式,此处为abc,而不是abc8
$n=$pom=~m/fish/;(这里的$n是对“$pom=~/fish/"的判断,如有fish就回1,没有就回空)
在内部,m//g会保存一个“匹配位置”的变量,表示这次的m//g匹配到了什么位置,以便下次运行时从该处继续开始。(这个位置可以通过pos函数获得,这里就不多说了。)

$_ = "abc";
print "a" if /a/g;
print "b" if /b/g;
# 输出结果:ab
结果是正确的。如果将语句换个位置呢?
$_ = "abc";
print "b" if /b/g;
print "a" if /a/g;
# 输出结果:b
可见,第二次的模式 a 没有匹配。其实可以想到,第一次的m/b/g匹配后,匹配位置已经指向了字符串中的下一个位置c,第二行的m/a/g继续从c开始匹配,当然不会匹配到任何东西。

while("balata"=~/.a/g){
$match=$&;
print("$match\n");
}
结果为:
ba
la
ta
当使用了选项g时,可用函数pos来控制下次匹配的偏移:
$offset=pos($string);
pos($string)=$newoffset;

/pattern/ 结果

. 匹配除换行符以外的所有字符

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 常用正则匹配相关推荐

  1. 14. Perl 正则表达式-正则匹配

    正则表达式(regular expression) 在Perl 里面通常也叫模式(Pattern). 正则表达式是用来匹配或不匹配某个字符串是否符合特定字符串模板的,也可以实现字符串的替换. 1. 正 ...

  2. perl中正则匹配中文字符

    写下这个题目,首先要区分的是,不是在perl的正则中找到中文,那样只要根据字符集的范围就可以找到,而是要找到给定中文字符串中是否包括指定的字词,比如,当下的某个系统中需要过滤 不厚先生的 名字. 通常 ...

  3. 【perl】正则匹配中的括号套括号的套娃抓取规则

    前言 从上周开始,我忽然有一个疑问,当我在进行正则匹配时,用括号可以抓取匹配上的内容,多个括号可以对应到$1.$2.$3等: 那么问题来了,如果括号进行套娃的话,应该如何用$1.$2.$3捕获呢? 是 ...

  4. 常用正则匹配及字符范围

    编程中有时候需要用到匹配中文的正则,一般用 [ \u4e00-\u9fa5]+ 即可搞定.不过这正则对一般的火星文鸟语就不太适用了,甚至全角的标点符号都不包含在内.例如游戏里面的玩家名,普通青年一般都 ...

  5. VSCode中常用正则匹配

    日常开发中,经常会遇到需要注释先前遗留的大量console相关的输出日志代码,在vscode中可以使用当前页搜索(CTRL + F)或全局搜索的方式来批量注释或删除. 当前页  全局 1.注释当前页所 ...

  6. Python正则表达式(正则、regular、re)讲解,及常用正则:匹配邮箱、身份证、手机号、IP地址、URL、HTML等

    正则表达式(正则.regular.re)是 Python 中最常见的编程技巧,很多时候,一个好的正则表达式可以抵上几十行代码.比如:匹配(校验)邮箱.身份证.手机号.IP地址.URL.HTML等. 正 ...

  7. 正则匹配常用匹配公式,运用举例,不用学习复杂的匹配规则,拿来就能用

    正则匹配千千万,常用匹配占一半.这里本实习生将常用的正则匹配整理如下,不用学习复杂的匹配规则,拿来就能用的正则匹配,才是好的正则匹配! 限定符:(匹配出现的次数) * >=0次 + >0次 ...

  8. php 密码校验正则,PHP常用密码正则匹配验证

    PHP常用密码正则匹配验证 第一种: //昵称2-10位字符,需由中文.数字.字母(区分大小写)和下划线组合 $a = '的方'; $b = preg_match( "/^[\x{4e00} ...

  9. 常用JS正则匹配函数

    //校验用户名:只能输入1-30个字母 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) retur ...

  10. mysql 正则匹配 捕获组_常用正则表达式 捕获组(分组)

    1.img标签 //,空格后src以'或"开始..... Regex reg = new Regex("]*\\ssrc=(['\"]+[^<>'\" ...

最新文章

  1. AlexeyAB DarkNet YOLOv3框架解析与应用实践(一)
  2. hdu1034 简单模拟
  3. zoj 3511 Cake Robbery(线段树)
  4. 【蓝桥杯官网试题 - 算法提高 】求最大值 (dp,0-1背包)
  5. [SDK2.2]SQL Azure (13) Azure的两种关系型数据库服务:SQL Azure与SQL Server VM的不同
  6. Kafka 学习笔记(二) :初探 Kafka
  7. 小白版教您如何使用SOLIDWORKS MBD
  8. XTUOJ-1104-素数个数
  9. Global Illumination_Lens Flare(镜头光晕)
  10. C# 串口助手中英文显示问题
  11. 真实场景的双目立体匹配(Stereo Matching)获取深度图详解
  12. 分析:公众号运营+引流,怎么从0到1运营
  13. python重载是什么意思_python重载
  14. Visual Studio 高亮引用颜色设置
  15. python邮件管理
  16. google api 得到 天气
  17. springboot dubbo的java配置
  18. SCCB与IIC的异同及FPGA实现的注意事项
  19. 现代密码学-密码学概论与基本知识
  20. 区块链将在元宇宙旅游中发挥哪些价值?

热门文章

  1. 机器人操作系统ROS(9)Gazebo物理仿真(摄像头仿真)
  2. 蒟蒻数据观二叉树(基础篇)
  3. 别让just do it 误导了你
  4. CF888G - Xor-MST(顺带学习Borůvka算法)
  5. 如果把编程语言比作武器
  6. 沉迷那一抹秋色·禾木
  7. c语言求开平方标准库函数,关于C语言中的开方计算,首先想到的当然是sqrt()函数,让我们先来回顾一下它的基本用法: 头文件:#include math.hsqrt(...
  8. 计算机科学与技术高校毕业生要求,计算机科学与技术专业 毕业要求(2016)
  9. 一个屌丝程序员的青春(二五六)
  10. (翻译)锚定效应(Anchoring)