Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957

    Espressione regolare per replace con escape

    Ciao a tutti,
    devo fare un replace in una stringa però con una gestione degli escape. In pratica devo sostituire il testo di tipo "{id}" con il valore dell'id.
    Questo lo faccio banalmente con
    codice:
    str.replaceAll("\\{id\\}", id);
    Però vorrei avere la possibilità di gestire gli escape in caso nel testo dovessi mettere delle VERE parentesi graffe. Come posso gestire la cosa?
    Non so se mi sono spiegatom, ma vorrei distinguere "testo\{id\}testo" (che non deve essere sostituito) da "testo{id}testo" che deve diventare "testo01testo".


    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    72
    Ciao
    prova così
    codice:
    String id="01";
    String testo="testo{id}testo";
    String testo2="testo\\{id\\}testo";
    Pattern pattern = Pattern.compile("\\{id\\}");
    Matcher matcher = pattern.matcher(testo);
    testo=matcher.replaceAll(id);
    matcher= pattern.matcher(testo2);
    testo2=matcher.replaceAll(id);
    il codice dovrebbe sostituire l'id solo in testo

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Espressione regolare per replace con escape

    Originariamente inviato da GoldEmish
    Però vorrei avere la possibilità di gestire gli escape in caso nel testo dovessi mettere delle VERE parentesi graffe. Come posso gestire la cosa?
    Non so se mi sono spiegatom, ma vorrei distinguere "testo\{id\}testo" (che non deve essere sostituito) da "testo{id}testo" che deve diventare "testo01testo".
    Ma è già così come l'hai fatto!

    codice:
    String s = "testo\\{id\\}testo   testo{id}testo";
    String id = "AAA";
    String s2 = s.replaceAll("\\{id\\}", id);
    Sostituisce solo il secondo ... non il primo! Se stampi s2 ottieni: testo\{id\}testo testoAAAtesto
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.