[JAVA] Chaîne Remplacement des cas où un saut de ligne est inclus dans * dans l'expression régulière de la condition de recherche

Lorsque vous avez des données au format XML, vous utilisez souvent le remplacement de chaîne lorsque vous souhaitez effacer les données sans les faire lire par un objet XML tel que DOM. Telle est l'histoire à ce moment-là.

J'ai remplacé la balise que je voulais effacer comme suit.

python


	String xmlStringData = getXMLfile();
	xmlStringData = xmlStringData.replaceAll("<ABB000001.*?</ABB00001>", "");

Parfois, cela ne disparaissait pas. En effet, au fur et à mesure de l'enquête, les données entre les balises étaient une chaîne de caractères et les données de saut de ligne étaient parfois incluses dans la partie attendue du "*" dans l'expression régulière.

Dans ce cas, le processus a été effectué en utilisant le mode DOTALL de Pattern.

python


import java.util.regex.Pattern;

	String xmlStringData = getXMLfile();
	xmlStringData = Pattern.compile("<ABB000001.*?</ABB00001>", Pattern.DOTALL).matcher(xmlStringData).replaceAll("");

J'ai pu le remplacer avec succès et supprimer la balise.

Recommended Posts

Chaîne Remplacement des cas où un saut de ligne est inclus dans * dans l'expression régulière de la condition de recherche
[Java] Découpez une partie de la chaîne de caractères avec Matcher et des expressions régulières
[Java] Lors de la mise d'une chaîne de caractères dans le cas de l'instruction switch, il est nécessaire d'en faire une expression constante
[Supprimer la première lettre de la chaîne de caractères] Ruby