2016-01-07 1 views
-1

Comment puis-je convertir cette chaîne AB23-01-0001-AB23010001 (remplaçant le « - » avec « ») et AB230001 (enlever la partie centrale) à l'aide regex en Java, à droite ligne J'utilise replace pour la première cas et substring et les ajoutant dans un SB pour le second cas. Je voulais juste savoir comment y parvenir en utilisant REGEX.Regex pour convertir cette chaîne

Répondre

-1

Vous pouvez utiliser la méthode de construction-pour enlever les deux parties à la fois par l'expression rationnelle:

String value = "AB23-01-0001"; 
value = value.replaceAll("-[\\d\\w]+-", ""); 
0

Essayez ceci:

Pattern p1 = Pattern.compile("-[^-]*-"); 
Matcher m1 = p1.matcher("AB23-01-0001"); 
System.out.println(m1.replaceAll("")); 

Pour test it

Un remplacement au boniment est Pattern.compile("-[\\d\\w]+-")

+0

Merci me laisser essayer. Une idée pour le deuxième cas? – Jeyaprakash

+0

@xtreme Cela devrait faire l'affaire – miqdadamirali

+0

@xtreme Les deux modèles fonctionnent pour supprimer le tiret et le contenu entre eux – miqdadamirali

0

Pourquoi ne pas utiliser la méthode intégrée dans la classe String?

String newString = "AB23-01-0001".replaceAll("[-]", ""); 

Notez l'utilisation de [] - une chaîne regex, puisque vous remplacez simplement un -, vous pouvez les omettre.

+1

Ne pas besoin de la classe de caractères [[] ' – Tushar

+1

Très vrai, je voulais prendre note du fait qu'il faudra un RegEx comme demandé: p –

+0

@ MattClark Merci, mais l'application que j'utilise pour la manipulation de données a un transformateur Regex intégré qui prendrait les entrées regex. C'est pourquoi intéressé par REGEX – Jeyaprakash