"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment diviser des chaînes avec des délimiteurs conservés à l'aide de Java Lookahead et Lookbehind ?

Comment diviser des chaînes avec des délimiteurs conservés à l'aide de Java Lookahead et Lookbehind ?

Publié le 2024-11-08
Parcourir:228

How to Split Strings with Delimiters Preserved Using Java Lookahead and Lookbehind?

Diviser des chaînes avec des délimiteurs conservés

Lorsque vous travaillez avec des chaînes multilignes délimitées par un ensemble de délimiteurs uniques, il peut être difficile de diviser la chaîne tout en préservant les délimiteurs eux-mêmes. La méthode standard String.split sépare uniquement la chaîne en fonction du délimiteur spécifié, en supprimant les caractères délimiteurs.

Utilisation de Lookahead et Lookbehind

Le kit de développement Java (JDK) fournit une solution utilisant le lookahead et le lookbehind, qui sont des fonctionnalités d'expressions régulières qui vous permettent de faire correspondre et de capturer des caractères sans les inclure dans le résultat final. result.

Voici un exemple utilisant l'anticipation et l'anticipation :

String input = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)";

String[] splitWithDelimiter = input.split("((?

Le modèle :

  • (?
  • (?=;) correspond à un caractère vide juste avant un point-virgule (lookahead).
  • ((?

Sortie :

[Text1, ;, DelimiterA, ;, Text2, ;, DelimiterC, ;, Text3, ;, DelimiterB, ;, Text4]

Ce résultat préserve les délimiteurs avec le texte, répondant ainsi à l'exigence de conserver les délimiteurs intacts lors de la division de la chaîne.

Amélioration de la lisibilité

Les expressions régulières peuvent parfois être difficiles à lire et à comprendre. Pour améliorer la lisibilité, vous pouvez créer une variable avec un nom descriptif qui représente le modèle d'expression régulière. Par exemple :

static final String WITH_DELIMITER = "((?

En utilisant des espaces réservés et le format String.format de Java, vous pouvez rendre l'expression régulière plus intuitive et plus facile à interpréter.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729746892. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3