正则表达式只能从每一行获得第一个单词

时间:2015-07-02 05:04:06

标签: regex notepad++

我有一个文本文件

@sp_id      int,    
@sp_name                varchar(120),
@sp_gender              varchar(10),
@sp_date_of_birth       varchar(10),
@sp_address             varchar(120),
@sp_is_active           int, 
@sp_role            int

在这里,我想从每一行得到第一个单词。我怎样才能做到这一点?单词之间的空格可以是空格标签等。

3 个答案:

答案 0 :(得分:4)

以下是我的建议:

查找内容^([^ \t]+).*

替换为$1

解释^匹配行的开头,([^ \t]+)匹配+以外的1个或更多(由于space)字符, tab(由于[^ \t]),然后是.*行前的任意数量的字符。

参见设置:

enter image description here

如果您可能有前导空格,可能需要使用

^\s*([^ \t]+).*

答案 1 :(得分:2)

查找内容:^(\S+).*$

替换为:\1

你可以简单地使用它来获得第一个单词。在这里我们捕获组中的第一个单词并用捕获的组替换while行。

答案 2 :(得分:-1)

使用/^\w+/gm查找每行的第一个单词。