Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Java, prosím o opravení regexu.

Dobrý den, již dříve jsem zde dával téma s regexem, dneska se na vás obracím znovu, jelikož regex nejsem schopný pochopit, budu potřebovat vaší pomoc :)
Toto jsou následující patterny které potřebuji opravit.

	public Pattern					ipPattern			= Pattern.compile("([01]?\\d\\d?|2[0-4]\\d|25[0-5])[.,:!\\-]([01]?\\d\\d?|2[0-4]\\d|25[0-5])[.,:!\\-]([01]?\\d\\d?|2[0-4]\\d|25[0-5])[.,:!\\-]([01]?\\d\\d?|2[0-4]\\d|25[0-5])");
	public Pattern					webpattern			= Pattern.compile("(http://)|(https://)?(www)?\\S{2,}((\\.com)|(\\.net)|(\\.org)|(\\.co)|(\\.uk)|(\\.tk)|(\\.info)|(\\.es)|(\\.de)|(\\.arpa)|(\\.edu)|(\\.firm)|(\\.int)|(\\.mil)|(\\.mobi)|(\\.nato)|(\\.to)|(\\.fr)|(\\.ms)|(\\.vu)|(\\.eu)|(\\.nl)|(\\.us)|(\\.dk))|(\\.cz)|(\\.sk)|(\\.bis)");

Problém je v tom že to bere i například takovéhle zprávy,

xxxxx - pls nemozes od 18:00-20:00

Půjde tento pattern nějak vylepšit ?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Kdyz chces neco opravit, uved taky priklad, co by to melo vybirat. Ten druhy vybira URL adresy, takz…
Jan Fiala 26.05.2013 18:24
Jan Fiala
Jsou tu 2 patterny, jedná se spíše o ipPattern. Má hlídat IP adresy př.: 95.90.299.120:26457 a né te…
siOnzeeSlav 26.05.2013 18:26
siOnzeeSlav
Pokud to ma byt IP adresa, pak by to melo jit i jednoduseji: (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d…
Jan Fiala 26.05.2013 19:13
Jan Fiala
Děkuji, toto můj případ vyřešilo. :) Zvláštní je že můj táta se jmenuje taky 'Jan Fiala', no nic pře… poslední
siOnzeeSlav 26.05.2013 19:16
siOnzeeSlav

Pokud to ma byt IP adresa, pak by to melo jit i jednoduseji:
(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,4}|\d{1, 3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
vyraz obsahuje 2 pripady: IP s portem + IP bez portu
Dalo by se to napsat i se zpetnymi odkazy, ale takto je to citelnejsi

Děkuji, toto můj případ vyřešilo. :) Zvláštní je že můj táta se jmenuje taky 'Jan Fiala', no nic přeji hezký zbytek dne :)

No, zkoušel jsem to pouze přes online matcher.
v Java dostávám error:
Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ ) onChat.java

Upravil jsem váš regex na :

(\d{1,3})[.,:!\\-](\d{1,3})[.,:!\\-](\d{1,3})[.,:!\\-](\d{1,3})[.,:!\\-](\d{1,5})

Už to bude skoro to co potřebuji.

Tak jsem zjistil že \ se bere jako Escape character, tudiž jsem to nahradil za \\ a všechno funguje jak má.

Zpět do poradny Odpovědět na původní otázku Nahoru