Tokenisation de chaînes avec des espaces, exclusion des sous-chaînes entre guillemets en Java
Séparer une chaîne en fonction d'espaces peut être simple, mais que se passerait-il si certaines parties de la chaîne est entre guillemets et doit être traitée comme un seul jeton ? En Java, vous pouvez réaliser ce fractionnement nuancé à l'aide d'expressions régulières.
Pour gérer ce scénario, l'approche suivante peut être utilisée :
String str = "Location \"Welcome to india\" Bangalore Channai \"IT city\" Mysore"; List<String> list = new ArrayList<>(); Matcher m = Pattern.compile("([^\"]\S*|\".+?\")\s*").matcher(str); while (m.find()) list.add(m.group(1));
L'expression régulière utilisée ici divise efficacement la chaîne en jetons basés sur des espaces, mais il identifie également les sous-chaînes entre guillemets. En capturant ces sous-chaînes citées sous forme de jetons uniques, nous pouvons garantir que des expressions telles que "Bienvenue en Inde" restent intactes.
L'expression régulière peut être comprise comme suit :
Cela nous permet de gérer efficacement les chaînes complexes avec des phrases entre guillemets. La liste résultante contient des jetons qui représentent des mots individuels ou des phrases citées, comme requis dans l'exemple fourni.
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!