2013-06-10 8 views
6

Muszę wybrać przez RegEx każdą spację przed liczbą.Regex dla wszystkich spacji przed numerem

Wiem, że spacja jest \ s, a cyfra to \ d, ale nie mogę wymyślić, jak po prostu pobrać przestrzeń przed liczbą.

tekst

Próbka: John Doe 6 Jane Doe 0

Należy zaznaczyć spacji przed 6 i 0.

pomysłów?

Dzięki!

+2

.Co językowych? – Kevin

+0

Skorzystaj z [lookahead] (http://www.regular-expressions.info/lookaround.html) – Bergi

+0

Chwytając spację? (Spacja to spacja) jeśli chcesz przetestować liczbę w ciągu, użyj po prostu '\ d '. –

Odpowiedz

8

To wyrażenie regularne będzie uchwycić przestrzeń przed każdym numerem

\s+(?=\d) 

Pozytywne spojrzenie na przodzie (?=\d) wymaga, aby liczba białych znaków następuje cyfra

Jeśli chcesz dopasować tylko spacje i nie innych znaków, które mogą być reprezentowane przez \s wtedy użyć:

[ ]+(?=\d) 
+0

To działa, dziękuję! Popatrzę dalej w "uprzedzenie". –

+0

Zaktualizowałem twoją odpowiedź. Spacja w regex jest taka sama jak spacja w tym zdaniu, aby się oddzielić. Jeśli szukasz postaci kosmicznej, użyj klasy postaci. E. G. .: [] + (? = \ D). Poza tym +1 za dobrą odpowiedź z opcjami. – Suamere

+0

@ Suamere, to dobry pomysł. Dziękuję za twoją edycję. –

0

Spróbuj tego:

(\s+)\d 

Przechwytuje przestrzenie z tych paretheses

Powiązane problemy