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 :
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!