normal ifade: herhangi bir kelimeyi ilk boşluğa kadar eşleştir


145

Aşağıdaki satır var:

hshd    household   8/29/2007   LB

İlk boşluktan (boşluk) önce gelen her şeyi eşleştirmek istiyorum. Bu durumda, geri dönmek istiyorum

hshd

2
İlk elem'i bölmenin ve almanın nesi yanlış?
Avinash Raj

Yanıtlar:


320
([^\s]+)

İşler


21
Ben sadece ilk kelimeyi almak için ^ başa
giderim

1
genel olarak doğru olsa da, ihtiyacın ^belirli dil uygulamalarına veya normal ifadeye bağlı olduğunu düşünüyorum . örneğin re.matchbu görev için kullanacağınız Python'da .
SilentGhost

5
Bu, sadece ilk kelimeyle değil, tüm kelimelerle eşleşir, bu örneğe bakın .
Ryan Gates

1
@RyanGates Global seçimini kaldırır ve amaçlandığı ve beklendiği gibi çalıştığını görürsünüz. Hala sorun yaşıyorsanız, dil uygulamaları hakkında notlar için SilentGhost'a bakın.
Volvox

1
@Volvox Teşekkürler, bunu kaçırmıştım.
Ryan Gates


12

Belki de ([^ ]+) .*ilk grubunuzdaki ilk boşluğa her şeyi vermenizi deneyebilirsiniz .


Sublime Text'de bir satırdaki son sözcüğü atlayacak olan @ire_and_curses. Herhangi bir nedenle, bu yapmaz: ([^]) +
hello_there_andy


4

tüm çizgi için

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


1

Sanırım, birden fazla harf içeren bir kelime yaratıldı. Benim önerim:

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

-2

^ ([^ \ s] +) bunu kullanın, sadece bu bağlantıyı kullanarak bunu test edebileceğiniz ilk kelimeyle eşleşir https://regex101.com/


bu cevaptan türetilmiştir.
darshan

O zaman neden yeni bir cevabın gerekli olduğunu düşündüğünüzü ve olası farkları açıklayın; ancak kabul edilen yanıtın yorumlarında zaten tartışıldığını göreceksiniz. Ayrıca, en yüksek oyu alan ikinci cevap oldukça benzerdir, ancak \Seşdeğer ama hantaldan daha basit olanı tercih etmesi bakımından biraz daha zariftir [^\s].
tripleee
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.