RegEx:删除第一个单词到下一行后的所有内容

时间:2011-11-14 02:43:33

标签: regex

使用什么正则表达式删除除每行第一个单词之外的所有内容:

数据:

JAMES          3.318  3.318      1
JOHN           3.271  6.589      2
ROBERT         3.143  9.732      3

我正在尝试在Notepad ++中将其作为替换。

4 个答案:

答案 0 :(得分:2)

用perl表示法:

s/^(\w+).*$/$1/

答案 1 :(得分:2)

取决于您正在使用的正则表达式实现。

正则表达式^[A-Za-z_]+将捕获一行中的第一个单词。因此,如果您的实施允许,您可以捕获第一个单词并打印出来并且您很高兴。

如果您需要使用替代品,则可以将^([A-Za-z_]+).*替换为\1 例如,在vi中,您将使用命令:%s/^\([A-Za-z_]+\).*/\1/

答案 2 :(得分:1)

您可以将^(\s*\w+)\s+.*$替换为\1,它会保留第一个字并删除该行的其余部分。

答案 3 :(得分:1)

我知道,这篇帖子已经有几年了......;) 无论如何:

假设一个单词是任何字符序列,后跟空格:

正则表达式将是: /\s.*/g

“”。代表断线的任何东西。

在vi中,您将使用以下命令“删除”第一个单词后面的任何行的其余部分: :%s/\s.*//g