2010-06-23 3 views
2

Je voudrais diviser une chaîne en un tableau selon une expression régulière semblable à ce qui peut être fait avec preg_split en PHP ou VBScript de Split fonction mais avec une expression régulière dans lieu du délimiteur.découper une chaîne selon une expression rationnelle dans VBScript

En utilisant l'objet VBScript Regexp, je peux exécuter une regex mais il retourne les matchs (donc je reçois une collection de mes ... splitters ce n'est pas ce que je veux)

Est-il possible de le faire?

Merci

Répondre

4

Si vous pouvez réserver une chaîne de délimitation spéciale, c'est-à-dire une chaîne que vous pouvez choisir qui ne fera jamais partie de la chaîne d'entrée réelle (peut-être "#@#"), vous pouvez utiliser remplacement de regex pour remplacer toutes les correspondances modèle à "#@#", et puis divisé sur "#@#".

Une autre possibilité consiste à utiliser un groupe de capture. Si votre délimiteur regex est, disons, \d+, alors vous recherchez (.*?)\d+, puis extrayez ce que le groupe capturé dans chaque match (see before et after on rubular.com).

0

Vous pouvez utiliser le tableau alway retourné des matches en entrée à la fonction split. Vous divisez la chaîne d'origine en utilisant la première partie - la première partie de la chaîne est la première partie, puis divisez le reste de la chaîne (moins la première partie et la première partie) ... continuer jusqu'à ce que terminé.

+1

Si je veux diviser une chaîne de plusieurs lignes en variables séparées, l'utilisation d'un tableau de sauts de ligne correspondants '" \ n "' ne fonctionnera probablement pas. On dirait qu'il chercherait simplement la chaîne '\ n' au lieu de chercher des sauts de ligne, correct? – Eptin