Regex 正则表达式,仅从每行中获取第一个单词
我有一个文本文件Regex 正则表达式,仅从每行中获取第一个单词,regex,notepad++,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 这里,我只想从每行中得到第一个
@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
这里,我只想从每行中得到第一个单词。我该怎么做?单词之间的空格可以是空格或选项卡等。查找内容:^(\S+).$
替换为:\1
您只需使用它来获取第一个单词。这里我们捕获组中的第一个单词,并用捕获的组替换while行。查找内容:^(\S+).$
替换为:\1
您可以简单地使用它来获取第一个单词。在这里,我们将捕获组中的第一个单词,并用捕获的组替换while行。以下是我的建议: 查找内容:
^([^\t]+).
替换为:$1
说明:^
匹配行首,([^\t]+)
匹配1个或多个字符(由于+
)而不是空格和选项卡
(由于[^\t]
),然后匹配任何数量的字符,直到行尾的*
请参见设置:
如果您可能有前导空格,您可能希望使用
^\s*([^ \t]+).*
以下是我的建议:
查找内容:^([^\t]+).
替换为:$1
说明:^
匹配行首,([^\t]+)
匹配1个或多个字符(由于+
)而不是空格和选项卡
(由于[^\t]
),然后匹配任何数量的字符,直到行尾的*
请参见设置:
如果您可能有前导空格,您可能希望使用
^\s*([^ \t]+).*
用/^\w+/gm
查找每行的第一个单词用/^\w+/gm查找每行的第一个单词是,从每行我想要第一个单词。那么在第一行@sp_idan中,左边的任何字符都不是空格或制表符^[^\t]+虽然标签是notepad++,但问题中没有任何内容与之相关。。。例如,在perl中,您可以执行/^(\S+)/
来获取行的第一个非空格部分。其他系统使用类似的语法。取决于正则表达式方言,\S可能不起作用。是的,从每一行我都想要第一个单词。那么在第一行@sp_idan中,左边的任何字符都不是空格或制表符^[^\t]+虽然标签是notepad++,但问题中没有任何内容与之相关。。。例如,在perl中,您可以执行/^(\S+)/
来获取行的第一个非空格部分。其他系统使用类似的语法。取决于正则表达式方言,\S可能不起作用。在“查找什么”框中使用什么?如果我将^\S+
放在查找什么:
中,然后将什么放在替换为:
您可以编辑您的答案,将的值放在查找什么和替换为
中吗。也请解释一下。谢谢“查找内容”框中使用了什么?如果我将^\S+
放在查找内容:
中,那么将中的内容替换为:
您可以编辑您的答案,为查找内容和替换为输入值吗。也请解释一下。谢谢我忘了说,$1
是对第一个捕获组(即([^\t]+)
)捕获的文本的反向引用。我还假设您没有空的第一个单词:)。祝你好运。初学者问题。所以基本上([^\t]+)是在捕捉那行的第一个单词,对吗?@AndyUK是的。事实上,我会使用\S+
而不是[^\t]+
,因为[^\t]+
匹配除常规空格和制表符之外的任何字符,因此可以匹配换行符。查找:一个空格,后跟*
↦ 替换为:nothing
给出的结果与您的答案相同,Wiktor先生……@HajiRahmatullah是的,除非有前导空格。在这种情况下,您可以先使用^\s+
将它们替换为空字符串,然后使用“*”
并替换为空字符串。我忘了说$1
是第一个捕获组捕获的文本的反向引用(即([^\t]+)
)。我还假设您没有空的第一个单词:)。祝你好运。初学者问题。所以基本上([^\t]+)是在捕捉那行的第一个单词,对吗?@AndyUK是的。事实上,我会使用\S+
而不是[^\t]+
,因为[^\t]+
匹配除常规空格和制表符之外的任何字符,因此可以匹配换行符。查找:一个空格,后跟*
↦ 替换为:nothing
给出的结果与您的答案相同,Wiktor先生……@HajiRahmatullah是的,除非有前导空格。在这种情况下,您可以先使用^\s+
将它们替换为空字符串,然后使用“*”
并替换为空字符串。