Pomoc s regulárnym výrazom – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s regulárnym výrazom – Java – Fórum – Programujte.comPomoc s regulárnym výrazom – Java – Fórum – Programujte.com

 

delux
~ Anonymní uživatel
4 příspěvky
10. 8. 2011   #1
-
0
-

Zdravím;
Potrebujem pomôcť s jedným regulárnym výrazom pre metódu compile triedy Pattern.
Vstupný reťazec je v tvare:
...
BEGIN:VCARD
"xxxx"
END:VCARD
...
Ja potrebujem vytiahnuť text v úvodzovkách, teda xxxx.
Premýšľal som niečo takéto: Pattern p = Pattern.compile("(BEGIN:VCARD\n)(.*)(\nEND:VCARD)");
Už si s tým neviem rady a tak prosím o pomoc. Ďakujem.

Nahlásit jako SPAM
IP: 217.172.155.–
zlz
~ Anonymní uživatel
634 příspěvků
10. 8. 2011   #2
-
0
-

\n neznamená konec řádku a tečka normálně nezahrhnuje konce řádků. Problém asi bude v obojím.

Nahlásit jako SPAM
IP: 213.211.51.–
delux
~ Anonymní uživatel
4 příspěvky
11. 8. 2011   #3
-
0
-

Nakoniec som to vyriesil takto:

public boolean dalsiKontakt() {
        Pattern pZaciatok = Pattern.compile("(BEGIN:VCARD)");//(.)(END:VCARD)");
        Matcher mZaciatok = pZaciatok.matcher(bufer);
        if(mZaciatok.find(zaciatok)) {
            Pattern pKoniec = Pattern.compile("END:VCARD");
            Matcher mKoniec = pKoniec.matcher(bufer);
            if(mKoniec.find(koniec)) {
                zaciatok = mZaciatok.end();
                koniec = mKoniec.end();
                vizitka = bufer.substring(zaciatok, koniec);
                pocetKontaktov++;
                return true;
            }
            else {
                System.out.println("Chyba, v subore nenajdene END:VCARD!");
                zaciatok = 0;
                return false;
            }
        }
        else {
            System.out.println("V subore sa nenachadza ziaden kontakt!");
            zaciatok = 0;
            return false;
        }
    }

Dajme tomu to "xxxx" sa nachádza v Stringu vizitka.

Nahlásit jako SPAM
IP: 217.172.155.–
zlz
~ Anonymní uživatel
634 příspěvků
12. 8. 2011   #4
-
0
-
Nahlásit jako SPAM
IP: 213.211.51.–
sleepy0
Stálý člen
13. 8. 2011   #5
-
0
-

   

public String getString(String text, String begin, String end){
	char[] cText = text.toCharArray();
		
	int sIndex = text.indexOf(begin)+begin.length(); 
	int eIndex = text.indexOf(end, sIndex);

// +- nejake drobne v zavislosti na tom co je v danom stringu okrem BEGIN:VCARD a END:VCARD	
	
	return String.copyValueOf(cText, sIndex, sIndex-eIndex);
}
Nahlásit jako SPAM
IP: 213.215.67.–
sleepy0
Stálý člen
13. 8. 2011   #6
-
0
-

#5 sleepy
opava:

int sIndex = text.lastIndexOf(begin);
Nahlásit jako SPAM
IP: 213.215.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

[RE] Pomoc s vyrazom — založil marioff

Pomoc !!! — založil Vlasta

Pomoc — založil piwolukas

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý