regex - perl 中的 s[][] 表示法

标签 regex perl

我看过这个perl cpan上的代码模块的文档:

$filename =~ s[^.+/][];

这是什么意思?我习惯了s// s 的符号功能。

最佳答案

Perl 允许将任何非空白字符用作字符串分隔符。见 Quote and Quote-like Operators

括号字符成对使用,如 <...> , [...] , (...) , 和 {...} , 而单引号防止插值。否则功能与默认分隔符相同

在这种情况下

$filename =~ s[^.+/][]

是相同的
$filename =~ s/^.+\///

但更具可读性

我更喜欢管道字符 |看起来类似于通常的斜线
$filename =~ s|^.+/||

但选择取决于你

关于regex - perl 中的 s[][] 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36025242/

相关文章:

perl - %INC 的键和值是否依赖于平台?

regex - 解析不同列数的 HTML 表格

mysql - 将 XML 数据导入数据库

c# - Star - 使用正则表达式在字符串中查找字符 *

javascript - 对于 postman 测试脚本匹配字符串与正则表达式

javascript - 在另一个字符串中搜索由非字母数字字符分隔的(任何)字符串

javascript - React Checkbox 触发正则表达式

Python正则表达式提取字符串的一部分

perl - 为什么 Perl 的 Math::Combinatorics 提示 "must use next_permutation of ' 频率'参数未传递给构造函数”?

perl - 如何将充满 unix 时间字符串的文件转换为人类可读的日期?