Regex JAVA.

Odpowiedz Nowy wątek
2015-02-14 20:00
0

Witam,
Mam następujący problem, próbuje za pomocą java.util.regex wyciągnąć, ze Stringa interesujące mnie informacje. Dla content="musicPath" wyrażenie regularne działa poprawnie, czyli zwraca "musicPath='C://Users/Adam/Music/'";

Pattern pattern = Pattern.compile(content+"='.*'");
Matcher m1 = pattern.matcher(settings);

while(m1.find()) {
    result = settings.substring(m1.start()+content.length()+2,m1.end()-1);
    break;
}
return result;

String content = "mp3Color"
String settings wygląda tak:

musicPath='C://Users/Adam/Music/'mp3Color='220,200,200'mp3BrowserButtonsColor='200,200,200'null

Niestety w wyniku wykonania kodu powyżej w wyniku dostaje

220,200,200'mp3BrowserButtonsColor='200,200,200

Uzywam jako separatora ' . Próbowałem jako separatora używać "&", ale efekt był ten sam. W czym jest problem? Nie używałem regexpów w Javie wcześniej i ten wynik jest dla mnie trochę nielogiczny.
Proszę o jakieś wskazówki.

Pozostało 580 znaków

2015-02-14 20:09

To co robisz jest po prostu głupie. Weź jak człowiek wyciągnij grupę! Poza tym nie używaj zachłannej * tylko *?. Bo teraz to ci łyknie tyle ile sie tylko da, więc jak masz na przykład więcej niż jeden cudzysłów w tekscie to sparuje ci pierwszy i ostatni, a nie pierwszy z tym najbliższym.

Grupy dodaje sie nawiasem a potem wyciąga z Matchera za pomocą .group(numer).


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2015-02-14 20:10

Pozostało 580 znaków

2015-02-14 20:19
0

Dzieki!
Problemem był tryb zachłanny, teraz wszystko działa tak jak chciałem.

edytowany 1x, ostatnio: valverde12345, 2015-02-14 20:21

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0