Speciális karakterek cseréje regexp probléma

Keresés
Hírlevél
 
ASPC#C++CSSDelphiFlashJavaJavaScriptPascalPerlPHPPythonuniPaaSVisual BasicVisual C++  »    
nyitotta: Nonek, idő: 2012.07.10., moderátor: moderator, megoldás elfogadva: 2012.07.11. 19:42
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben

Kategóriák:Programozási nyelvek » Java

Sorrend:
Időzóna:
Blokkméret:
Oszd meg!
Sziasztok!

Inputról beírt szöveget szeretnék az alábbiak szerint "tisztítani":

Pl ha a szöveg:
asdasdaőááé *****'"```(***)**%%%%dadasfsdgf */*/*/----dsd
akkor a tisztított szöveget így alakítsa át:

asdasdaőááé%dadasfsdgf%dsd

Hogyan lehet ezt megvalósítani pl regexp-l?


replaceAll("", "");


Köszönöm!

Üdv:
N.
replaceAll("\p{Punct}+","%");
előzmény

http://php.net/manual/en/function.str-replace.php

üdv előzmény
Nem php, csak szolok. előzmény
*/*/*/----
Ebbol %-nak kell lennie?

%%%%
Meg gondolom ebbol csak egy % maradjon meg.

szerk.:

Ha a ----bol kell %jelet csinalni akkor igy:

public class Test {
        public static void main(String[] args) {
                String a = "asdasdaőááé *****'"```(***)**%%%%dadasfsdgf */*/*/----dsd";
                a = a.replaceAll("['*' \"`()/]", "").replaceAll("%+", "%").replaceAll("-+", "%");
                System.out.println(a);
        }
}
előzmény
ooops, bocs előzmény
hopsz, a prog.hu levagta az escapet, helyesen:

String a = "asdasdaőááé *****'\"```(***)**%%%%dadasfsdgf */*/*/----dsd";
előzmény
Majdnem jó. A tökéletes megoldás az lenne ha az összes nem betűt és nem számot cserélje le "%" -re. Lehetnek ilyen karakterek is amit cserélni kellene %-re: !/ \ˇ^°˛˙`´¨¸"'.?;_
akárhányszor.
Ezzel próbáltam, de nem működik: [^\p{N}\p{L}] előzmény
public class Test {
        public static void main(String[] args) {
                String a = "asdasdaőááé *****'\"```(***)**%%%%dadasfsdgf */*/*/----dsd";
                a = a.replaceAll("[^a-zA-Z0-9]+","%");
                System.out.println(a);
        }
}
előzmény
a = a.replaceAll("[^a-zA-Z0-9áÁéÉöÖüÜóÓőŐúÚűŰíÍ]+","%");

Ebben benne vannak az ékezetesek is. előzmény
Jaaaj, nem is figyeltem az ekezeteket. előzmény
Biztos azért nem, mert nincs a billentyűzeteden ékezetes karakter.


Ez lett a kimenet:
asdasdaőááé%dadasfsdgf%dsd előzmény
Ennek a kimenete:
asdasdaőááé %dadasfsdgf %dsd

Nem pedig:
asdasdaőááé%dadasfsdgf%dsd

Nekem járt volna a pont.
előzmény
Ez a tuti!
Köszönöm Neked is Galovics, de sajnos nem tudom elosztani a pontokat...

előzmény
Oszd meg!