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
分享到:
相关推荐
#### 捕捉正则变量 - 使用圆括号`()`来定义捕捉组,通过`\1`、`\2`等反引用变量。 - 使用`(?<name>...)`定义命名捕捉组,通过`\k<name>`引用。 #### 正则表达式使用变量 - 可以在正则表达式中使用变量,如`/($var...
除了上述内置变量外,Perl还提供了一些特殊变量,如$-[0]和$+[0],分别代表当前匹配的正则表达式在被匹配的字符串中的起始和终止位置。这些变量虽然不是内置变量,但在正则表达式匹配和文本处理中极为重要。 #### ...
- 变量类型:标量、数组、哈希。 - 控制结构:条件语句(if/else)、循环(for/while)。 - 字符串操作。 - **第3天:数据结构** - 数组的创建、访问和修改。 - 哈希表的使用。 - 复杂数据结构的应用。 - **第...
8. **异常处理**:Perl的错误处理通常通过`eval`块和`die`函数进行,可以捕捉运行时错误并进行处理。 9. **文本处理**:Perl非常适合处理和分析文本,它可以轻松地进行行和单词的分割,查找和替换模式,以及格式化...
- **异常处理**:Perl通过eval块来捕捉运行时错误。《Programming Perl》详细介绍了如何使用eval块进行错误处理,并提供了一些实用的调试技巧。 - **代码优化**:为了提高程序性能,书中还探讨了如何通过优化算法和...
在Perl 脚本中使用eval 命令来强制变量替换 11-15. 使用set 来改变脚本的位置参数 11-16. 重新分配位置参数 11-17. Unset 一个变量 11-18. 使用export 命令传递一个变量到一个内嵌awk 的脚本中 11-19. 使用getopts ...
在Perl脚本中使用eval命令来强制变量替换 11-15. 使用set来改变脚本的位置参数 11-16. 重新分配位置参数 11-17. Unset一个变量 11-18. 使用export命令传递一个变量到一个内嵌awk的脚本中 11-19. 使用getopts命令来...
82. **Perl**: Perl 脚本支持。 83. **Plus**: 加法运算符。 84. **Poly**: 多项式操作。 85. **Power**: 幂运算。 86. **Predef**: 预定义变量和函数。 87. **Pwd**: 获取当前工作目录。 88. **Quit**: 退出当前...
Ruby语言的灵感和特性借鉴了Perl、Smalltalk、Eiffel、Ada和Lisp等多种编程语言。 Ruby语言入门教程详细介绍了Ruby的基础知识,包括编程语言的发展历史、Ruby的由来和特性、基本语法、面向对象编程的核心概念,以及...
4. 正则表达式:在文本处理中经常会用到正则表达式,它是一种文本模式匹配语言,可以用来搜索、替换文本。 5. 调试和优化:学习如何调试Shell脚本,发现并修复脚本中的错误。同时,优化脚本,提高其执行效率和...