J'essaye d'analyser une chaîne que je reçois d'un hashtag, et jusqu'ici il ressemble à une regex pourrait être le chemin le plus propre aller. Le modèle, avec une explication, est la suivante:Regex (ou autre suggestion) pour analyser un hashtag
#p3 -> p = 3
#h4 -> h = [ 4 ]
#h4,h6 -> h = [ 4, 6 ]
#p3,h4,h6 -> p = 3, h = [ 4, 6 ]
#h4,h6,p3 -> p = 3, h = [ 4, 6 ]
#h4s2,6,10 -> h = [ 4 ], s = { "4": [ 2, 6, 10 ] }
#h4s2,6,10,h6s5 -> h = [ 4, 6 ], s = { "4": [ 2, 6, 10 ] , "6": [ 5 ] }
#p20h4s2,6,10,h6s5,1 -> p = 20, h = [ 4, 6 ], s = { "4": [ 2, 6, 10 ] , "6": [ 5, 1 ] }
Comme je l'ai dit, je pense que regex pourrait être mon meilleur pari mais c'est aussi un point faible pour quoi que ce soit complexe.
Si vous avez d'autres suggestions/solutions, alors je les souhaite la bienvenue. Je pourrais le faire en utilisant if/else
avec beaucoup de indexOf
et splits
et ainsi de suite ... mais je suis certain qu'il doit y avoir une meilleure façon que cela.
Mise à jour: La sortie sur la gauche est considérée comme une explication. Bien que ce soit le résultat final souhaité, une solution regex ne doit pas résoudre le problème complet, mais peut-être me faire partie du chemin. Aussi, pour réitérer, je travaille en Javascript.
Y a-t-il un motif régulier que vous pourriez poster? Comme une généralisation du modèle? – jjnguy
@jjnguy: Au son de cela, s'il pouvait le faire, il n'aurait pas besoin de poser la question. – Welbog
@Welbog, j'espérais qu'il répondrait à la question pour lui-même. – jjnguy