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

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

Susan Sarandon
Libérer: 2024-10-25 04:23:02
original
497 Les gens l'ont consulté

How to Split Strings with Delimiters Using Lookahead and Lookbehind?

Diviser des chaînes avec des délimiteurs à l'aide de Lookahead et Lookbehind

Une tâche courante en programmation consiste à diviser une chaîne en fonction de délimiteurs spécifiques. Cependant, la méthode String.split() par défaut fournit uniquement le texte fractionné, à l'exclusion des délimiteurs. Dans les scénarios où conserver les délimiteurs est crucial, des approches alternatives sont nécessaires.

L'anticipation et l'analyse derrière sont des fonctionnalités des expressions régulières qui permettent d'identifier des modèles sans réellement les faire correspondre. En tirant parti de ces fonctionnalités, nous pouvons diviser une chaîne tout en préservant les délimiteurs.

Approche Regex :

<code class="java">String sentence = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)";
String[] splitResult = sentence.split("((?=;)|(?<=;))");</code>
Copier après la connexion

Interprétation :

Cette expression régulière comprend :

  • (?=;) : analyse anticipée positive pour faire correspondre une chaîne vide avant un point-virgule (;).
  • (?<=;) : positif lookbehind pour faire correspondre une chaîne vide après un point-virgule (;).
  • ((?=;)|(?<=;)) : combine l'analyse anticipée et l'analyse ultérieure, garantissant qu'un point-virgule existe avant ou après le point de partage.

En utilisant cette regex, le splitResult contiendra les éléments suivants :

[Text1, ;, Text2, ;, Text3, ;, Text4]
Copier après la connexion

Conclusion :

Lookahead et lookbehind permettent une manipulation avancée des chaînes en permettant l'identification de modèles sans les faire correspondre directement. Cette approche offre un moyen polyvalent de diviser des chaînes en fonction de délimiteurs tout en conservant leur structure d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal