正则表达式仅从每行中获取第一个单词

Regular expression to get only the first word from each line

我有一个文本文件

@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

在这里,我只想从每一行中获取第一个单词。我怎样才能做到这一点?单词之间的space可能是space或者tab等等

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

替换为:

您可以简单地使用它来获取第一个 word.Here 我们正在捕获组中的第一个单词并用捕获的组替换 while 行。

这是我的建议:

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

替换为</code></p> <p><em>说明</em>:<code>^匹配行首,([^ \t]+)匹配1个或多个(由于+)除spacetab(由于 [^ \t]),然后是任意数量的字符,直到带有 .*.

的行尾

查看设置:

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

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

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

我做了类似的事情:

with open('handles.txt', 'r') as handles:
    handlelist = [line.rstrip('\n') for line in handles]
    newlist = [str(re.findall("\w+", line)[0]) for line in handlelist] 

这会得到一个包含文档中所有行的列表, 然后它将每一行更改为一个字符串并使用正则表达式提取第一个单词(忽略空格)

我的文件 (handles.txt) 包含如下信息:

JoIyke - 个人推特 link;

newMan - 另一个推特账号;

你的link - 又一个。

代码将 return 这个列表: [JoIyke,newMan,你的link]