D'accord, celui-ci est intéressant. J'ai une solution, mais je ne l'aime pas.Expression régulière optimale: correspond à des ensembles de lignes commençant par
Le but est de pouvoir trouver un ensemble de lignes commençant par 3 périodes - pas une ligne individuelle, mais une collection de toutes les lignes d'une ligne qui correspondent. Par exemple, voici quelques matchs (chaque match est séparé par une ligne blanche):
...
...hello
...
...hello
...world
...
...wazzup?
...
Ma solution est la suivante:
^\.\.\..*(\n\.\.\..*)*$
Il correspond à tous ceux-ci, il est donc ce que j'utilise pour maintenant - cependant, il semble assez idiot de répéter le motif \.\.\..*
. Y a-t-il un moyen plus simple?
S'il vous plaît test your regex avant de le soumettre, plutôt que de soumettre ce qui "devrait fonctionner". Par exemple, j'ai essayé la suite de la première:
(^\.\.\..*$)+
qui ne revint lignes individuelles, même si dans mon esprit il semble que ça ferait l'affaire - je suppose que je ne comprends pas internals regex. (Et non, je n'avais pas besoin de mettre des drapeaux pour que^et $ correspondent aux limites des lignes, puisque j'implémente ceci dans Ruby.)
Donc je ne suis pas totalement sûr qu'il y ait une bonne réponse, mais on serait très apprécié - merci d'avance!
vous devez spécifier la langue que vous utilisez car tout le monde a fait une implémentation différente. .NET? Perl? javascript? – Eric
Juste pour dire que j'utiliserais probablement juste le code normal; la plupart des langues facilitent la lecture ligne par ligne d'un fichier (etc) et vérifient qu'une chaîne commence par quelques caractères ... –
Je suis presque sûre d'avoir spécifié Ruby là-dedans ... non? – Matchu