je dois séparer une chaîne comme ceci:Expression régulière pour la séparation par des virgules, sauf si la virgule est, entre parenthèses,
cat, dog , ant(elephant, lion(tiger)), bird
dans ce:
cat
dog
ant(elephant, lion(tiger))
bird
Mon état actuel est le suivant: (\w+)(,\s*)*
, mais cela sépare également l'éléphant, le lion et le tigre. En outre, certaines virgules et espaces sont conservés.
Vous pourriez avoir deviné, que j'appellerai encore la même expression sur la chaîne ant(...)
dans une autre itération. Si c'est important, je vais l'utiliser en C++.
Cela ne ressemble pas à un langage régulier. Vous aurez besoin d'un type d'analyseur plus fort. –
Peut-être équivalent à http://stackoverflow.com/q/1732348. –
Je ne sais pas si regex est la solution, mais vous pouvez le faire avec une fonction d'analyse c/C++ très simple. – 16tons