G
gast2
Gast
Hallo,
ich stehe etwas auf dem Schlauch was die erstellung eines dynamischen Regex angeht:
ich habe eine ArrayList mit Strings...sagen wir (Buch, Zeitung, Pizza Flyer). Diese Liste wird normaler weise zur Laufzeit erstellt und ich weiß nicht was für Worte drin stehen.
ich möchte mir jetzt nen Regex bauen der alles finded was auf "Siehe ArrayList.get(i)" zu trifft...aber irgendwie krieg ich das nicht hin...
Mein Ansatz war folgender:
Mein Problem ist jetzt zum ersten: wie muß ein solcher REgEx aussehen? D.h. wie bringe ich meine 3 Begriffe da richtig rein und zweitens ich kriegs nich hin die Sonderzeichen wie "Leerzeichen" so umzuwandeln, das es Regex-konform ist.
Könnt ihr mir da etwas helfen?
Danke.
gast2
ich stehe etwas auf dem Schlauch was die erstellung eines dynamischen Regex angeht:
ich habe eine ArrayList mit Strings...sagen wir (Buch, Zeitung, Pizza Flyer). Diese Liste wird normaler weise zur Laufzeit erstellt und ich weiß nicht was für Worte drin stehen.
ich möchte mir jetzt nen Regex bauen der alles finded was auf "Siehe ArrayList.get(i)" zu trifft...aber irgendwie krieg ich das nicht hin...
Mein Ansatz war folgender:
Code:
String StartREGEXP="(([Ss][Ii][Ee][Hh][Ee][\\s])";
String EndeREGEXP=")";
//DummyList anlegen
ArrayList list = new ArrayList();
ist.add("Buch");
ist.add("Zeitung);
ist.add("Pizza Flyer");
StringBuffer buff = new StringBuffer();
//Liste durchlaufen:
if(list!=null && list.size()!=0){
buff.append(StartREGEXP);
buff.append("(");
for(int i=0; i<list.size();i++){ <-- Aufbau des Regex in der Schleife funzt nicht so richtig
//Kontrollroutine -> Sonderzeichen escapen...
String tmp = RessortList.get(i).toString();
//tmp=tmp.replaceAll("\\s", "\\\\s"); <-- krieg ich nicht hin (für "Pizza Flyer" z.B)
list.set(i,tmp);
buff.append("(");
buff.append(list.get(i));
buff.append(")");
if(i!=list.size()-1)
{
buff.append("||");
}
}
buff.append(")");
buff.append(EndeREGEXP);
}
Mein Problem ist jetzt zum ersten: wie muß ein solcher REgEx aussehen? D.h. wie bringe ich meine 3 Begriffe da richtig rein und zweitens ich kriegs nich hin die Sonderzeichen wie "Leerzeichen" so umzuwandeln, das es Regex-konform ist.
Könnt ihr mir da etwas helfen?
Danke.
gast2