dAEkMedlem sedan feb. 20041 816 inlägg Halloj,
Jag har en textsträng som innehåller en massa information, bl.a.
[param(src).value]
där "src" kan vara vad som helst (a-z och 0-9) och där .value även kan vara .name, men det är inte så viktigt att kontrollera det. Nu vill jag ersätta alla dessa "[params(xxx).value]" med en annan sträng, exempelvis "apa".
Mitt halvtappra försök har givit mig detta expression som dock inte riktigt funkar.
alert("text text [param(fooooobaaaar).value] mer text".match(/^\[param\(\w\)\.value\]$/));
Man måste tydligen "escapa" sina grejer lite annorlunda i Java-världen och jag har väl aldrig varit en höjdare på regexps så jag har bara testat i js än så länge. Tänkte att det skulle vara lättare att få nåt att fungera så men det gick ju inte riktigt som planerat...
En vänlig knuff i rätt riktning vore inte helt fel. :bire
spangoMedlem sedan juni 20008 205 inlägg Är det i Java du ska få till det att funka? Det är inga konstigheter med escapes egentligen, det är bara det att man måste komma ihåg att en regexp ju skrivs i en sträng, så för att få till exempelvis \w måste man eskejpa backslashen med en backslash (eftersom javac annars tolkar det som ett försök till ett specialtecken). String pattern = "\\w";
Hursom, jag tror att patternet du är ute efter borde vara typ:
\[param\([a-z0-9]+\)\.(name|value)\]
dAEkMedlem sedan feb. 20041 816 inlägg Yes, det är tänkt att det ska in i Java-koden sen.
Det blir lite rörigare att följa regexps i Java jämfört med JS men det ger sig väl med tiden. Det var länge sedan jag ens rörde JS tbh.
Det ser ut att fungera som tänkt. Super-tack och bock! (y)
spangoMedlem sedan juni 20008 205 inlägg OK, i Java blir det:
Pattern p = Pattern.compile("\\[param\\([a-z0-9]+\\)\\.(name|value)\\]");
Flyttat från Regular Expressions på grund av att provtiden för forumet har gått ut