Supposons que j'ai la chaîne "1 AND 2 AND 3 OR 4" et que je souhaite créer un tableau de chaînes contenant toutes les sous-chaînes "AND" ou "OR", afin , trouvé dans la chaîne. Donc, la chaîne ci-dessus retournera un tableau de chaînes de {"AND", "AND", "OR"}.C#: trouver des instances d'une chaîne dans une chaîne
Quelle serait une façon intelligente d'écrire cela?
EDIT: utilisant C# 2.0+,
string rule = "1 AND 2 AND 3 OR 4";
string pattern = "(AND|OR)";
string[] conditions = Regex.Split(rule, pattern);
me donne { "1", "ET", "2", "ET", "3", "OU", "4"} , ce qui n'est pas tout à fait ce que je cherche. Comment puis-je réduire cela aux AND et aux OR seulement?
Je peux voir ce que vous essayez de faire mais je ne pense pas que l'approche 'Split' est la plus appropriée pour ce que vous voulez. Voir le Split est la séparation de l'entrée aux ANDs et ORs résultant ainsi dans les nombres (et seulement les AND/ORs coz de la parenthèse) - ce qui n'est pas ce que vous voulez. Vous voulez les AND et les ORs. Je pense qu'un motif regex spécialement conçu pourrait renvoyer plusieurs correspondances, capturant ainsi uniquement les AND et les OR. –
Pourriez-vous expliquer le but si cette exigence? Cela pourrait aider à concevoir une regex plus appropriée. –