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.
Fórum › Java
Pomoc s regulárnym výrazom
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.
To je ale největší pitomost, jakou jsi mohl vymyslet :)
http://download.oracle.com/javase/6/docs/api/java/lang/String.html
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);
}
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
[RE] Pomoc s vyrazom — založil marioff
Pomoc.... nějaká chybka prosím pomoc - více v podrobném popisu — založil tkstudent
Pomoc, pomoc s úkolem (matice v Delphi) — založil maxikp
Moderátoři diskuze