从 perl 中的一行文本中删除每隔一个单词(或更好:用空格将相邻字符串分隔的字符串)的最佳方法是什么?
由此:
- Mn Gordon Npmsc Snell Npmsc . Fe
我只想检索这个:
- Gordon Snell .
我曾尝试编写一个正则表达式对此建模,但到目前为止我都失败了。任何建议,将不胜感激!
最佳答案
像这样的事情会做到这一点:
my $i = 0;
my $line = "Mn Gordon Npmsc Snell Npmsc . Fe";
my @words = grep { $i++ % 2 } split /\s+/, $line;
print "@words\n"; # "Gordon Snell ."
基本上,您将行拆分为由空格分隔的单词列表,然后过滤掉每隔一个元素以将其放入目标数组中。
关于regex - 使用 perl 从一行中删除每个第二个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7260256/