正規表現:最初のスペースまで任意の単語に一致


145

次の行があります。

hshd    household   8/29/2007   LB

最初のスペース(空白)の前にあるものは何でも一致させたい。だから、この場合、私は戻ってきたいです

hshd

2
最初のelemを分割して取得することの何が問題になっていますか?
Avinash Raj 2016

回答:


320
([^\s]+)

働く


21
私はさらに最初に^を追加して最初の単語のみを取得します
soulmerge

1
一般的に正しいが、必要性は^特定の言語の実装または正規表現に依存すると思います。たとえば、Pythonではre.matchこのタスクに使用します。
SilentGhost 2009

5
これは、最初の単語だけでなく、すべての単語に一致します。この例を参照してください
ライアンゲイツ

1
@RyanGatesがグローバルの選択を解除すると、意図したとおりに機能することがわかります。それでも問題が解決しない場合の言語実装に関する注意事項については、SilentGhostを参照してください。
Volvox 2013

1
@Volvoxありがとう、私はそれを逃していた。
Ryan Gates


12

おそらく([^ ]+) .*、を試すことができます。これにより、最初のグループの最初の空白まですべてが表示されます。


@ ire_and_curses、Sublime Textでは、行の最後の単語をスキップします。何らかの理由で、これは行われません:([^])+
hello_there_andy




1

単語は複数の文字で作成されたと思います。私の提案は:

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

-2

^([^ \ s] +)これを使用して、このリンクを使用してテストできる最初の単語のみに正しく一致し ますhttps://regex101.com/


その答えに由来します。
Darshan

次に、新しい回答が必要だと思う理由を説明し、考えられる違いを説明します。しかし、あなたはそれが受け入れられた回答のコメントですでに議論されていることに気付くでしょう。また、2番目に高い投票数の回答は非常によく似ていますが\S、同等ではあるが不格好なものよりも単純な方を好むという点でややエレガント[^\s]です。
Tripleee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.