perl - 只匹配两次
问题描述
我想准确匹配一个单词两次。输出不应显示所有匹配项。如何使用 perl?
open(a,"<file.txt");
open(c,">>output.txt");
while (my $line = <a>) {
if($line =~ m/know{2}/) {
print $line;
}
}
close(a);
close(c);
示例:如果 file.txt 有以下几行:
I know Perl.
I know English.
I know French.
I know Dutch.
预期的结果应该是:
I know Perl.
I know English.
解决方案
您似乎在询问如何找到包含know
.
为此,您需要跟踪之前找到的行数。
my $count = 0;
while (<>) {
if (/know/) {
print;
last if ++$count == 2;
}
}
推荐阅读
- jestjs - 运行 Jest 测试时使用 jsForce 登录 Salesforce
- code-editor - 在 VMware 中安装 DOMJudge
- ios - NEVPNManager 停止使用 iOS 14 beta
- angular - 如何加载选定的检查垫选择列表
- html - 在 div 中的 brfore 和 after 伪选择器的 css 中块显示
- css - Safari 中按钮子元素的高度与 Chrome 中的行为不同
- coldfusion - 在 ColdFusion CFScript 字符串中转义冒号“:”?
- python - 将在一个列表中找到的对象的属性传递给另一个列表
- r - 从 plyr 替换点函数
- java - 如何在 import.sql 文件中写入字符串日期值,以便 Hibernate 可以创建并插入 MySQL?