正则表达式:匹配任何单词,直到第一个空格


145

我有以下几行:

hshd    household   8/29/2007   LB

我想匹配第一个空格(空白)之前的所有内容。所以,在这种情况下,我想回来

hshd

2
拆分并获得第一个元素有什么问题?
Avinash Raj

Answers:


319
([^\s]+)

作品


21
我会进一步加上^仅得到第一个字
soulmerge

1
虽然总体上是正确的,但我认为需要^取决于特定的语言实现或正则表达式。例如在Python中,您将re.match用于此任务。
SilentGhost 2009年

5
这会匹配所有单词,而不仅仅是第一个单词,请参见此示例
瑞安·盖茨

1
@RyanGates取消选择“全局”,您将看到它按预期和预期运行。如果您仍然遇到问题,请参考SilentGhost以获取有关语言实现的说明。
Volvox

1
@Volvox谢谢,我错过了。
瑞安·盖茨


12

也许您可以尝试([^ ]+) .*,这应该使您一切都在第一组的第一个空白中。


@ire_and_curses,在Sublime Text上,将跳过一行中的最后一个单词。出于某些原因,它不会:([^])+
hello_there_andy


4

整行

^(\w+)\s+(\w+)\s+(\d+(?:\/\d+){2})\s+(\w+)$


1

我认为,一个单词是由多个字母组成的。我的建议是:

[^\s\s$]{2,}

-2

^([^ \ s] +)使用它,它仅与第一个单词正确匹配,您可以使用此链接测试此单词 https://regex101.com/


它是从那个答案中得出的。
darshan

然后解释为什么您认为需要一个新的答案,并解释任何可能的差异;但您会发现已在接受答案的注释中对其进行了讨论。同样,投票数第二高的答案也很相似,但更为优雅,因为它比简单\S但笨拙的更喜欢简单的方法[^\s]
三人
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.