2010-10-26 9 views

Répondre

2

Vous pouvez enregistrer un caractère entier (youpi!) En écrivant:

^\s?([-*]|\d+\.)\s+ 

Autre que qu'il n'y a pas grand-chose à faire ici. Si vous n'avez pas besoin du contenu de l'alternance, vous pouvez rendre le groupe non-capture et peut-être raser une nanoseconde ou deux au large en écrivant

^\s?(?:[-*]|\d+\.)\s+ 

mais c'est très probablement la forme la plus extrême de l'optimisation prématurée, vous pouvez faire. De plus, vous avez besoin de plus de caractères ...

+0

EGADS! +1 pour trouver les économies de 1-char en supprimant les crochets; hehe –

1

Comme Regexes vont, celui-là est sacrément court et simple comme il est. Est-ce que cela fonctionne comme prévu? Si oui, laissez-le tranquille.

+0

oh, ok merci. Je me demandais si je pouvais simplifier cette regex pour qu'elle soit plus lisible et facile à comprendre, que ce soit pour moi ou pour quelqu'un d'autre à l'avenir. –

+1

Les regex sont parmi les constructions les moins lisibles que vous trouverez dans la programmation , OMI. Ils ont l'air étranges, surtout quand vous n'êtes pas très à l'aise avec eux: P –

+0

+1 Peut-être même que l'idée d'optimiser une regex est peu biaisée? –

1

Pourquoi voudriez-vous l'optimiser? Le contenu de vos expressions régulières est déjà composé d'atomes non redondants. Vous ne pouvez pas simplifier plus ...

+1

+1 pour utiliser le mot «atomes». J'aime ce mot, utilisé de manière appropriée. Ne me demande pas pourquoi! (oh, et pour une réponse correcte!) –

+0

Le mot "atome" vient de la documentation de vim sur les modèles. Je ne l'ai pas inventé :) – Benoit

+0

Oh oui, je sais; c'est ce que je veux dire. :) Surtout, je suis très en retard pour le lit et la canalisation d'un ours de soins! –

Questions connexes