J'essaie de créer une fonction qui divisera une chaîne en termes de recherche. En utilisant ce code fonctionne très bien:Scinder les chaînes de manière "Google"
string TestString = "This is a test";
string[] Terms;
Terms = TestString.Split(" ");
Cela partagerai mon string en 4 cordes: "Ce", "est", "un", "test". Cependant, je veux des mots qui sont entre guillemets à traiter comme un seul mot:
string TestString = "This \"test will\" fail";
string[] Terms;
Terms = TestString.Split(" ");
Cela diviser ma chaîne en 4 cordes, encore une fois: « Ce », « \ » test « « va \ » » , « échec »
ce que je veux est pour cela divisé cette dernière chaîne en seulement 3 chaînes: « ce », « test », « fail »
quelqu'un a une idée sur la façon de le faire?
Pour un crédit supplémentaire: obtenir le regex pour gérer les citations incorporées dans la partie citée. Votre choix de la façon d'échapper les guillemets intégrés - en utilisant '\\', en doublant les guillemets, ou un autre mécanisme. Mais les guillemets simples doivent aussi être intégrables (comme les antislashs). –