regex - 使用 Perl 正则表达式搜索并替换特定长度的字符串

标签 regex perl replace

我正在尝试搜索并替换长度不超过 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/

相关文章:

perl - 为什么 "import"子程序在 Perl 中没有大写

perl - 在 Perl/Moose 中,如何将修饰符应用于所有子类中的方法?

c# - .NET 字符串.替换

Perl 如何从作为数组元素的文件句柄中读取一行

linux - 使用 sed 替换 fstab 中的 UUID 值

javascript - Jquery 字符串替换不起作用

java - 使用正则表达式选择 3 个字母的单词

c++ - 如何从字符串变量为正则表达式构建原始字符串

c# - 示例字符串的正则表达式字符串

Java正则表达式单词提取排除特殊字符