Maison  >  Article  >  Java  >  Comment diviser des chaînes en préservant les délimiteurs à l’aide d’expressions régulières ?

Comment diviser des chaînes en préservant les délimiteurs à l’aide d’expressions régulières ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 15:59:01848parcourir

How to Split Strings Preserving Delimiters Using Regular Expressions?

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

Lorsque vous travaillez avec des chaînes contenant plusieurs délimiteurs, il devient essentiel de diviser la chaîne en ses parties constitutives tout en en préservant les informations du délimiteur. La méthode String.split() fournit un mécanisme simple pour diviser des chaînes, mais elle extrait uniquement les sous-chaînes sans conserver les délimiteurs.

Pour obtenir le résultat souhaité en fractionnant une chaîne et en conservant les délimiteurs, on peut utiliser des méthodes régulières. expressions avec des assertions d’anticipation et d’anticipation. Lookahead (?=) et lookbehind (?<=) sont des syntaxes spéciales qui permettent la correspondance sans consommer aucun caractère de la chaîne d'entrée.

Considérez l'exemple suivant :

<code class="java">String input = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)";

String[] parts = input.split("((?=;)|(?<=;))");</code>

Dans ce code :

  • L'expression régulière (?=;) correspond à une position juste avant un point-virgule (;).
  • L'expression régulière (?<=;) correspond à une position juste avant après un point-virgule (;).
  • Le | L'opérateur spécifie que la correspondance peut se produire pour (?=;) ou (?<=;).
  • Les parenthèses les plus extérieures entourent l'expression entière et servent de parenthèses de capture.

Lorsqu'elle est utilisée avec la méthode split(), cette expression régulière identifiera chaque caractère délimiteur (;) et créera une correspondance vide pour celui-ci. Ainsi, les parties du tableau résultantes contiendront les éléments suivants :

[Text1, ;, Text2, ;, Text3, ;, Text4]

Cette approche nous permet de conserver la structure originale de la chaîne tout en la divisant en ses composants individuels. Il s'agit d'une technique puissante pour analyser des chaînes complexes de manière à maintenir leur intégrité.

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!

Déclaration:
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