regex - 使用 perl 从一行中删除每个第二个单词?

标签 regex perl text

从 perl 中的一行文本中删除每隔一个单词(或更好:用空格将相邻字符串分隔的字符串)的最佳方法是什么?

由此:

  1. Mn Gordon Npmsc Snell Npmsc . Fe


我只想检索这个:

  1. 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/

相关文章:

perl - 卸载 cpan 安装的所有 perl 模块

perl - 用 Perl 解析 JSON 的问题

iphone - 在 UITableView 中选择时如何更改单元格标题颜色

regex - CakePHP 用户名 URL 使用正则表达式?

regex - R在字符串内填充0

java - 元音和辅音与正则表达式

Java 扫描器反斜杠分隔符

perl - 为什么我的 Perl CGI 程序显示的是程序代码,而不是输出?

c# - 我怎样才能找到两个大字符串之间的 lcs 长度

javascript - 如果对上一个文本进行了编辑,光标会跳到文本末尾