我试图在数据位置打印匹配的字符串,我该怎么办?
$at ="at";
@ar = <DATA>;
@xxv = map(m/$at/g, @ar);
print "@ar";
print @xxv;
print "\n";
__DATA__
atgacaagcagacccaggggatacgat
Run Code Online (Sandbox Code Playgroud)
我预计输出是
atgacaagcagacccaggggatacgat
at at at
Run Code Online (Sandbox Code Playgroud)
通过获得所需的输出 s///
$at ="at";
$ar = <DATA>;
print $ar;
$ar =~ s/$at(*SKIP)(*F)|./ /g;
print $ar;
__DATA__
atgacaagcagacccaggggatacgat
Run Code Online (Sandbox Code Playgroud)
输出:
atgacaagcagacccaggggatacgat
at at at
Run Code Online (Sandbox Code Playgroud)
$at(*SKIP)(*F)扩展变量$at并将存储在变量中的同一组字符与输入字符串相匹配.以下(*SKIP)(*F)导致匹配失败并强制右侧的模式|与剩余的字符匹配.所以.匹配除跳过的字符之外的所有字符.用空格替换那些匹配的字符将为您提供所需的输出.
参考文献:
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |