Wpis z mikrobloga

#programowanie #java
Jakich użyć regexpow, aby z tekstu wyciagnac liczbe i tekst. W grę również wchodzi liczba ujemna. Dla np. "test 15" zwraca mi test i 15 czyli prawidłowo. Dla "test -15" niestety zwraca mi test- i 15.

moj regexp
dla tekstu: str.replaceAll("\d", "")
dla liczby: .replaceAll("[^\d.]", "")
  • 8
  • Odpowiedz
@pulla: W javie opcja jest oznaczona ?, tzn. -? oznacza - albo jego brak.
czyli dostaniemy (-?\d+) dla usunięcia liczb i (-?\D+) dla usunięcia tekstu.

O ile w prostym przypadku takie zastępowanie liczb/tekstu pustym stringiem jest skuteczne, o tyle w bardziej skomplikowanej sytuacji (np. po liczbie musi być napis km i mają być 2 takie liczby) to jest bezużyteczne. W takim przypadku można użyć
http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

Są tam opisane wszystkie znaczki
  • Odpowiedz