【问题标题】:Print only the matched characters in perl在 perl 中只打印匹配的字符
【发布时间】:2019-09-19 20:38:58
【问题描述】:

如果我只想用 Perl 打印匹配的字符,是否有 Perl 单行。例如我有一个这样的文本文件:

data.txt
foo1 bar baz
foo2 bar baz
bar foo3 baz
bar baz foo4

我尝试了以下但没有输出:

perl -ne '/foo\d/ && print "$1"' data.txt

【问题讨论】:

  • $1 引用一个捕获组。尝试将所需输出的模式包装在括号中,使其成为捕获组。

标签: regex perl


【解决方案1】:

$1 包含与第一个捕获组匹配的部分,但您的正则表达式中没有捕获组。

使用$& 获取与整个模式匹配的所有内容。

perl -ne '/foo\d/ && print "$&"' data.txt

【讨论】:

    最近更新 更多