微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

perl – 如何将下一个搜索开始位置倒回1?

如何将下一个搜索位置的开头倒数1?例如,假设我想匹配#之间的所有数字.以下将只给我奇数.
my $data="#1#2#3#4#";

while ( $data =~ /#(\d)#/g ) {
  print $1,"\n";
}

但是如果我能够将下一个位置的开始倒数1,我会得到偶数和奇数.

这不起作用:pos()= pos() – 1;

我知道我可以用拆分完成这个.但这并没有回答我的问题.

for (split /#/,$data) {
  print $_,"\n";
}

解决方法

你在$_上调用pos()而不是$data

perldoc

Returns the offset of where the last m//g search left off for the variable in question ($_ is used when the variable is not specified)

所以,

pos($data) = pos($data) - 1;

原文地址:https://www.jb51.cc/Perl/172323.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐