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>
Interprétation :
Cette expression régulière comprend :
En utilisant cette regex, le splitResult contiendra les éléments suivants :
[Text1, ;, Text2, ;, Text3, ;, Text4]
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!