6
votes

Java Regex joindre des mots entre crochets

J'ai la chaîne d'entrée suivante: xxx pré>

(la longueur de la chaîne et == 'quelque chose "varie). p>

sortie souhaitée: P>

line = line.replaceAll("(\\s*==\\s*)", "(\"") 


4 commentaires

J'ai utilisé le moyen @hwnd de le faire. Merci à tous ceux qui ont répondu :)


Mais comment remplacer-t-il des espaces autour ==


@vks - J'ai remplacé les espaces autour == avec un autre remplacé ()


Ma regex l'a fait en une fois dans la première tentative :)


4 Réponses :


2
votes
\s*==\s*'(\S+?)'

0 commentaires

2
votes

Vous pouvez le faire en deux étapes de de remplacement () code>: xxx pré>

Exemple de code complet: p>

String str = "flag1 == 'hello' and flag2=='hello2'";
str = str.replaceAll("'(?=\\w)","('")
         .replaceAll("(?<=\\w)'$?", "')");

System.out.println(str); // prints flag1 == ('hello') and flag2==('hello2')


0 commentaires

7
votes

Sauf si je suis mal compris, vous pouvez tout correspondre entre les citations et remplacer.

s = s.replaceAll("\\s*==\\s*'([^']+)'", "==(\"$1\")");


0 commentaires

2
votes

Essayez ceci xxx


0 commentaires