我正在尝试搜索并替换长度不超过 3 个字符的字符串(因此“删除”元素内容)。
所以我有这样的东西:
foreach (@array) {
s/^{1,3}$//;
}
例如
@array = ('one', 'two', 'three', 'four', 'five', 'six', 'seven');
因此,打印时,预期输出为:
result: result: result: three result: four result: five result: result: seven
因此,对于受影响的输入,输出将是一个“空的地方”。
目前这种情况还没有发生...我敢打赌,由于我对正则表达式的理解仍然不稳定,我正在犯一个简单的错误。任何帮助表示赞赏!
如果有一种简单的方法可以实际完全删除元素而不创建新数组,那么了解这一点也很有用。
最佳答案
如果您想匹配任意三个字符,s/^.{1,3}$//
应该可以。我只是在 ^
之后添加了一个点,因为您的原始正则表达式没有指定您想要匹配 1-3 个字符的类型。
关于regex - 使用 Perl 正则表达式搜索并替换特定长度的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12728307/