Bouhouhohu REGEXP DE DEURM

  1. Le but de la regexp PHP (utilisée avec preg_replace): trouver des “cellules” dans une expression Excel sans pour autant faire sauter des range de cellules.

Exemples d’expressions Excel:
=A1+B1
=A1+B1+C1
=SUM(A1:B1)

Ma reg exp doit fonctionner avec A1 B1 et C1 dans les 2 premières expressions excel, mais surtout pas avec A1:B1.

Après quelques recherches, j’en suis arrivé à:

/([^:]|^)([A-Z]+)([0-9]+)([^:]|$)/s

Oui c’est imbitable (normal c’est du regexp). Ca marche relativement bien, sauf dans la seconde expression ou il ne me match pas B1. parce que la première classe ([^:]|^) indique: un caractère différent de : ou en début de ligne. Seulement, la fin du premier match avec A1 contient déjà le ‘+’ donc n’est plus utilisé pour l’évaluation de B1, donc rend la classe invalide. Donc ne détecte pas le B1.

Quelqu’un a une idée?

Un solution bourrine serait d’identifier les ranges: code([0-9]+):([A-Z]+)([0-9]+)[/code]

Puis de les substituer par quelque chose qui ne rentre pas dans la définition d’une cellule, donc hors code([0-9]+)[/code]

Ensuite tu repasses tranquillement sur ta chaîne et hop, le tour est joué.

Mais c’est laid hein… :stuck_out_tongue:

Pour toute mes regex j’utilise Kiki : un soft qu’il est bien pour rediger ses regex quand on est un gland qu’a pas ete a l’ecole (ou plus simplement, quand on a du mal a ecrire de bel regex bien poilues) !

(oui, je sais, ca reponds pas vraiment a la question, mais ca peut achement aider a trouver ce genre de trucs !)

[quote=“c0unt0, post:3, topic: 26323”]Pour toute mes regex j’utilise Kiki : un soft qu’il est bien pour rediger ses regex quand on est un gland qu’a pas ete a l’ecole (ou plus simplement, quand on a du mal a ecrire de bel regex bien poilues) !

(oui, je sais, ca reponds pas vraiment a la question, mais ca peut achement aider a trouver ce genre de trucs !)[/quote]

Moi j’utilise expresso, qui est dans le même genre. Mais le tien à l’air un poil mieux en fait (si on excepte le fait qu’il soit en python)