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
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]+-", "");
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]+-")
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.
Ne pas besoin de la classe de caractères [[] ' – Tushar
Très vrai, je voulais prendre note du fait qu'il faudra un RegEx comme demandé: p –
@ 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
str = "AB23-01-0001"
happy = str.replaceAll("[^a-zA-Z0-9]", "");
Merci me laisser essayer. Une idée pour le deuxième cas? – Jeyaprakash
@xtreme Cela devrait faire l'affaire – miqdadamirali
@xtreme Les deux modèles fonctionnent pour supprimer le tiret et le contenu entre eux – miqdadamirali