regex - 我的 ($H,$M,$S) = $date =~ m{^([0-9]{2}) :([0-9]{2}):([0-9]{2})} in perl 的含义

标签 regex perl

我是 perl 的新手。任何人都可以解释以下代码行的含义:

my ($H,$M,$S) = $date =~ m{^([0-9]{2}):([0-9]{2}):([0-9]{2})}

我假设在这行 $H 执行后,$M$S 将从 中提取值$日期。任何人都可以解释一下以获得更好的理解吗?

最佳答案

它尝试用正则表达式匹配 $date 变量的内容:

^([0-9]{2}):([0-9]{2}):([0-9]{2})

正则表达式的基本意思是:从字符串的开头,应该有两个数字和冒号重复三次。这三个两位数中的每一个都包含在一个组中。

最后将三组的匹配赋值给局部变量$H$M$S


例如如果

$date = "10:37:21 2016.01.02";

然后

$H = "10";
$M = "37";
$S = "21";

关于regex - 我的 ($H,$M,$S) = $date =~ m{^([0-9]{2}) :([0-9]{2}):([0-9]{2})} in perl 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34630582/

相关文章:

linux - 为什么这个错误?在 join 或 string 中使用未初始化的值

perl - 新的 perl 对象覆盖先前对象的数据

java - 使用正则表达式从字符串中捕获所有数字而不拆分

regex - Apache mod_rewrite .htaccess - 类似链接

regex - htaccess url 重新设计图像 url 以使其对 seo 友好

Java字符串上的多个正则表达式

regex - 当替换器使用变量时,如何调用 Regex::replace_all?

perl - 如何 : cat text | ./script.pl

perl - 我可以从工具包模板文件中搜索结果集吗?

perl - 如何在 Perl 中将部分子字符串更改为混合大小写