`
deepfuture
  • 浏览: 4412293 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80130
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70350
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103592
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:286571
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15054
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67786
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32292
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46075
社区版块
存档分类
最新评论

perl-正则变量捕捉

阅读更多

1、使用默认数字捕捉

use 5.010;

my $names='deep and future';

iif ($names=~m/(\w+)  (and|or)  (\w+)/){

    say "I saw $1 and $3";#为什么不是$2,因为一个括号代表可捕捉位置,$2是and|or

}

输出 I saw deep and future

2、使用变量名捕捉

use 5.010;

my $names='deep and future';

iif ($names=~m/((?<pname1>\w+)  (and|or)  (?<pname2>\w+)/){

    say "I saw $+{pname1} and $+{pname2}";

}

3、指定不捕捉某些括号,使用(?:)

use 5.010;

my $names='deep and future';

iif ($names=~m/(\w+)  (?:and|or)  (\w+)/){

    say "I saw $1 and $2";#and|or不捕捉

}

4、使用自动变量匹配

$`表示匹配起始位置之前的字符串

$&表示匹配的内容,即//内的内容

$'表示匹配终结位置之后的内容

use 5.010;

my $names='hello! deep and future';
if ($names=~m/o!\s(\w+)/){
say $`;
say $&;
say $';
say $1;
}

 

输出:

 hell
o! deep
 and future
deep

分享到:
评论

相关推荐

    神奇的perl-最佳Perl入门

    #### 捕捉正则变量 - 使用圆括号`()`来定义捕捉组,通过`\1`、`\2`等反引用变量。 - 使用`(?&lt;name&gt;...)`定义命名捕捉组,通过`\k&lt;name&gt;`引用。 #### 正则表达式使用变量 - 可以在正则表达式中使用变量,如`/($var...

    Perl内置及特殊变量

    除了上述内置变量外,Perl还提供了一些特殊变量,如$-[0]和$+[0],分别代表当前匹配的正则表达式在被匹配的字符串中的起始和终止位置。这些变量虽然不是内置变量,但在正则表达式匹配和文本处理中极为重要。 #### ...

    Teach Yourself Perl 5 in 21 days

    - 变量类型:标量、数组、哈希。 - 控制结构:条件语句(if/else)、循环(for/while)。 - 字符串操作。 - **第3天:数据结构** - 数组的创建、访问和修改。 - 哈希表的使用。 - 复杂数据结构的应用。 - **第...

    perl资料

    8. **异常处理**:Perl的错误处理通常通过`eval`块和`die`函数进行,可以捕捉运行时错误并进行处理。 9. **文本处理**:Perl非常适合处理和分析文本,它可以轻松地进行行和单词的分割,查找和替换模式,以及格式化...

    Perl语言编程Programming Perl(大骆驼书)

    - **异常处理**:Perl通过eval块来捕捉运行时错误。《Programming Perl》详细介绍了如何使用eval块进行错误处理,并提供了一些实用的调试技巧。 - **代码优化**:为了提高程序性能,书中还探讨了如何通过优化算法和...

    Advanced Bash-Scripting Guide <>

    在Perl 脚本中使用eval 命令来强制变量替换 11-15. 使用set 来改变脚本的位置参数 11-16. 重新分配位置参数 11-17. Unset 一个变量 11-18. 使用export 命令传递一个变量到一个内嵌awk 的脚本中 11-19. 使用getopts ...

    Linux高级bash编程

    在Perl脚本中使用eval命令来强制变量替换 11-15. 使用set来改变脚本的位置参数 11-16. 重新分配位置参数 11-17. Unset一个变量 11-18. 使用export命令传递一个变量到一个内嵌awk的脚本中 11-19. 使用getopts命令来...

    SCILAB英文教程

    82. **Perl**: Perl 脚本支持。 83. **Plus**: 加法运算符。 84. **Poly**: 多项式操作。 85. **Power**: 幂运算。 86. **Predef**: 预定义变量和函数。 87. **Pwd**: 获取当前工作目录。 88. **Quit**: 退出当前...

    Ruby入门教程

    Ruby语言的灵感和特性借鉴了Perl、Smalltalk、Eiffel、Ada和Lisp等多种编程语言。 Ruby语言入门教程详细介绍了Ruby的基础知识,包括编程语言的发展历史、Ruby的由来和特性、基本语法、面向对象编程的核心概念,以及...

    LINUX SHELL编程从初学到精通

    4. 正则表达式:在文本处理中经常会用到正则表达式,它是一种文本模式匹配语言,可以用来搜索、替换文本。 5. 调试和优化:学习如何调试Shell脚本,发现并修复脚本中的错误。同时,优化脚本,提高其执行效率和...

Global site tag (gtag.js) - Google Analytics