Est-il indispensable pour chaque programmeur d'apprendre les expressions régulières? [fermé]


82

Je suis nouveau dans la programmation et lors d'une interview, j'ai eu une question sur les expressions régulières; Inutile de dire que je ne pouvais pas répondre. Alors je me demandais si je devrais apprendre l'expression régulière? Est-ce un must pour tous les programmeurs de tous les domaines? Ou est-ce un must pour la programmation dans certains domaines?

Questions connexes:


55
Personnellement, je sais ce qu’ils sont, quand les utiliser et comment utiliser la syntaxe google. hausse les épaules
Tyanna

35
C'est un must pour tous les utilisateurs avec pouvoir. Et les programmeurs doivent être des utilisateurs privilégiés pour être productifs.
SK-logic le

8
Pourquoi ne voudriez-vous pas les apprendre? Vous avez déjà rencontré au moins une situation dans laquelle vous auriez bénéficié de les connaître. Ne pensez-vous pas que vous pourriez vous retrouver dans une situation similaire à l'avenir?
FishBasketGordo

23
Seuls ceux qui travaillent avec le texte :)
Steve Jackson

Réponses:


113

Les expressions régulières sont un outil incroyablement pratique, disponible dans de nombreuses langues, que la plupart des développeurs apprendront tôt ou tard.

Pour un interviewer, ils constituent un bon moyen de sonder l'expérience lors d'une interview. Si vous interviewez une personne affirmant des années d'expérience qui ne la comprend pas, vous devez approfondir vos connaissances.


4
Je suis d’accord, c’est une bonne question pour tout développeur expérimenté. Cependant, il est probablement un peu injuste de demander à un jeune diplômé n'ayant aucune expérience professionnelle à ce sujet - à moins qu'il ne veuille vraiment filtrer les candidats sans expérience pratique de la programmation.
SK-logic le

2
@ SK-logic: Dépend de l'école. Nous avions tous un cours obligatoire en 2e année qui faisait un usage assez intensif des expressions régulières (je l’avoue, c’est là que je suis devenu accro;);). Et plus de quelques cours de niveau supérieur les ont repris, mais jamais aussi intensément.
FrustratedWithFormsDesigner

D'accord avec les commentaires ci-dessus - Je ne m'attendrais pas à ce que quelqu'un qui sort de l'école connaisse nécessairement les expressions régulières. Mais je pourrais encore demander.
ptyx

13
Je suis mathématicien et je n'ai donc aucune formation en informatique, mais j'aurais pensé que les expressions rationnelles étaient réellement enseignées dans des cours d'université, tout en discutant des grammaires, des analyseurs syntaxiques, des automates, etc. En fait, je m'attendais à ce que quelqu'un qui vient de sortir d'université ait une meilleure connaissance qu'un programmeur expérimenté sans études en CS. : - /
Andrea

8
@Andrea, quand j'étais à l'université (BS in Computer Science), les expressions régulières étaient en effet couvertes lors de l'apprentissage des grammaires et des automates. Cependant, seul le concept formel était couvert, pas les applications. Nous n'avons pas appris la syntaxe d'expression régulière POSIX ou compatible Perl, ni la façon de les utiliser dans notre codage. Nous avons appris à dessiner un diagramme d'état d'un automate à états finis, à l'écrire en tant qu'expression régulière, etc. Il s'agissait de lettres grecques, et non de grep et de fichiers texte.
Adam Jaskiewicz

54

Les expressions régulières sont un outil. Il s’avère être un outil très utile et beaucoup de gens choisissent d’apprendre à l’utiliser. Cependant, il n'y a aucune "exigence" pour vous d'apprendre à utiliser cet outil particulier, pas plus qu'il n'y a une "exigence" pour vous d'apprendre autre chose.


19
Cela est aussi vrai que de dire que comprendre la logique booléenne est utile, mais pas obligatoire.
Oded le

1
@Oded: Je n'ai trouvé aucune utilité à la logique booléenne enseignée dans mon cours.
DeadMG

16
@DeadMG, j'utilise tout le temps la logique booléenne, comme dans les conversions: if (!(foo && bar))=> if (!foo || !bar). Peut-être que vous l'utilisez et que vous ne l'avez pas compris, ou peut-être que vous n'avez pas appris le bon matériel.
zzzzBov

7
Vous aimez le contrôle de version? Ou test de logiciel?
Konrad Rudolph

2
@ruakh - Je conviens qu'ils sont extrêmement utiles. Je les utilise moi-même tout le temps. Je pense que tous les programmeurs devraient apprendre à utiliser les regex à un moment donné de leur carrière. La question, cependant, ne demandait pas cela.
eykanal

33

Je ne serais pas surpris si, par exemple, un programmeur de jeux ou un programmeur du LHC n'a jamais appris les expressions régulières. Je pourrais même laisser passer un programmeur de jeux ne sachant pas SQL.

Toutefois, si vous travaillez dans des systèmes d’information de toute sorte et si vous ne connaissez pas les expressions régulières, vous vous rendez un mauvais service.

D'un autre côté, je ne m'attendrais pas à ce que votre programmeur informatique standard connaisse les mathématiques de la matrice qu'un programmeur de jeux connaîtrait. Il existe différentes disciplines de programmeur, mais nous devons cependant tomber dans la catégorie des "systèmes d’information".


1
Les programmeurs du LHC peuvent utiliser des expressions régulières pour rechercher dans les fichiers de données générés par les capteurs. Les programmeurs de jeux peuvent utiliser des expressions régulières pour effectuer une recherche dans les fichiers journaux générés par leurs jeux. Ok, ils n’auront peut-être pas à le faire , mais cela pourrait probablement rendre ces tâches beaucoup plus faciles.
FrustratedWithFormsDesigner

1
Je suis d'accord, mais si j'interviewais pour un poste de programmeur de jeux, j'engagerais quand même quelqu'un s'ils ne savaient pas ce qu'est une expression régulière. Si j'embauchais quelqu'un dans un rôle de programmation d'entreprise traditionnel qui ne savait pas ce que étaient les expressions régulières, ils ne seraient probablement pas embauchés.
Jonathan Rich

C'est juste, je suppose.
FrustratedWithFormsDesigner

7
Les physiciens des particules travaillent la plupart du temps dans des environnements similaires à ceux des systèmes Unix, mais comme tout ce qui touche à l'informatique dans cette communauté, la plupart des compétences sont transmises par les traditions orales. Les niveaux de sophistication dans les expressions rationnelles varient. Mais nous ne cherchons pas les données avec les expressions rationnelles: il y en a trop et ce n'est pas au format texte. Nous recherchons des journaux, des bases de données ad hoc , du code et une documentation à moitié assortie, comme tout le monde.
dmckee

1
@FrustratedWithFormsDesigner, je n'engagerais pas un développeur de jeux qui ne connaisse pas l'expression régulière. La programmation est par nature très gourmande en informations quel que soit le domaine . Peu importe ce que vous faites - quelle que soit votre discipline, vous avez le code source, des éditeurs de texte compatibles regex et des fichiers journaux. Sans regex, vous serez nettement moins efficace dans l'exécution de certaines tâches (même si vous n'avez pas besoin d'écrire une seule ligne de regex dans le jeu livré). Je ne dis pas que la regex est nécessaire pour un programmeur de jeux. Je dis juste que je n'en embaucherais pas un qui ne le savait pas.
Ben Lee

22

Les expressions régulières sont un moyen très concis d'exprimer comment faire correspondre les modèles dans le texte.

L'obligation d'analyser et d'extraire des données d'un texte ou de valider la conformité d'un texte à un modèle spécifique est très fréquente dans la programmation. Je dirais donc qu'il est important de les connaître et de les comprendre.

C’est un bon outil à avoir dans votre boîte à outils et je suppose que tous les programmeurs expérimentés sauront comment les utiliser.

L'une des meilleures ressources pour en savoir plus sur les expressions régulières est le livre de Jeffery Friedl, Mastering Regular Expressions . Il est plutôt avancé et vous voudrez peut-être le lire quand vous aurez plus d'expérience.

Vous pouvez commencer avec le tutoriel à l' adresse regular-expressions.info .


2
C'est pour moi une question de goût. Je n'ai jamais vraiment eu besoin d'eux. Je les ai utilisées sur quelques projets, donc je sais comment ils fonctionnent, mais j'aurais facilement pu m'en passer et je les ai vus abusés plus souvent que je n'en avais ressenti le besoin. Pour simplifier un modèle et vous pouvez aussi bien utiliser la manipulation de chaînes de caractères complexe et il est plus rapide d'utiliser (e) BNF au moins si vous êtes comme moi habitués à travailler avec des analyseurs syntaxiques
Rune FS

15

Contrairement à la majorité des réponses ici, je ne pense pas que la connaissance des ex-policiers soit une compétence nécessaire pour être un programmeur productif. Lorsque j'interviewe des candidats à un poste, je creuserais davantage s'ils se sentaient obligés de se perfectionner. Pourquoi? ils sont souvent utilisés à certains endroits car ils aiment le bon marteau, mais il leur fallait souvent un tournevis. Recherchez SO HTML et regex et vous verrez pas mal de questions et quelques raisons pour lesquelles regex est un inadapté.

La capacité de faire le bon OOD est nécessaire avant que je plaide pour l'embauche d'une personne interrogée, la connaissance des expressions régulières ne l'est certainement pas. Et je ne pense pas réellement que quiconque pense que vous pouvez être un programmeur plus productif connaissant les expressions rationnelles, mais manquant de domaines tels que l'analyse, la conception et la connaissance du framework utilisé

Bien sûr, ils sont parfois utiles, mais depuis plus de 20 ans que je suis développeur professionnel, je pense les avoir utilisés moins de 20 fois dans le code (et même coder quelques scripts Perl). Je les utilise régulièrement pour faire des recherches et remplacer si.


Les programmeurs qui ne connaissent pas les expressions régulières créent souvent un gros tas de fichiers WTF lorsqu'une expression régulière fonctionne très bien. Les programmeurs qui ne connaissent que les expressions régulières créent souvent une pile de WTF plus petite mais massivement incorrecte qui tente de traiter des langages non réguliers (par exemple HTML) avec des expressions régulières.
kevin cline

14

Quel que soit le domaine dans lequel vous travaillez, les expressions régulières sont un outil utile à connaître, car la plupart des langages de programmation sont écrits sous forme de texte brut. Regex est donc un excellent moyen de manipuler et de refactoriser votre code source et il est intégré à de nombreux éditeurs de texte. J'ai vu d'innombrables programmeurs apporter des modifications répétées aux fichiers source lorsqu'une expression régulière les modifiait beaucoup plus rapidement et avec précision.

C’est ce que le chapitre 3 du Pragmatic Programmer décrit avec le texte brut comme "matière première de base de la programmation".


Pourquoi n'utilisez-vous pas simplement une idée qui prend en charge la refactorisation?
NimChimpsky

2
Si j'avais posé la question dans cet article, je vous l'aurais cochée. C'est la raison la plus importante pour laquelle je n'aurais jamais engagé quelqu'un qui ne connaissait pas regex. C'est un puissant outil d' édition de code et de recherche de journaux , même si vous n'avez jamais besoin d'écrire une seule ligne de code qui l'utilise. Quelqu'un qui ne sait pas que certaines tâches quotidiennes seront moins efficaces d'un ordre de grandeur.
Ben Lee

10

Jeff Atwood a écrit un excellent blog sur les expressions régulières, dans lequel se trouve cette citation étonnante:

Some people, when confronted with a problem, think "I know, I'll use regular 
expressions." Now they have two problems. [Jamie Zawinski]

Il existe également une excellente réponse à une bonne question: un débordement de pile que vous voudrez peut-être vérifier.

Vous devriez définitivement en savoir un peu. Les expressions régulières sont faciles à apprendre mais difficiles à maîtriser. Vous n'avez pas besoin de tout apprendre pour commencer à l'utiliser. Juste être sensible à ce sujet.

 

tl; dr

Vous devez connaître la technologie pour pouvoir prendre une bonne décision quant à son utilisation.


8

Je travaille dans une base de code incorporé qui ne dispose pas d'une bibliothèque d'expressions régulières disponible. Une certaine tâche nécessitait 275 lignes de code et prenait environ deux semaines pour déboguer tous les cas critiques, aller-retour entre le testeur et le développeur. J'ai plus tard écrit une fonction pour faire la même chose dans le cadre d'un utilitaire javascript. L' exacte même tâche en utilisant des expressions régulières utilisé 10 lignes de code et a parfaitement fonctionné en 15 minutes environ.

Avez-vous besoin d' expressions régulières? Techniquement non, mais il est insensé de rester intentionnellement ignorant d'un outil aussi efficace.


6

citer une autre réponse:

Les expressions régulières sont un moyen très concis d'exprimer comment faire correspondre les modèles dans le texte.

Donc, si cela représente une partie importante de votre travail, il existe probablement une meilleure façon de concevoir le système que vous développez. À moins que beaucoup de texte ne soit spécifique à votre domaine (par exemple, la bioinformatique).

J'ai travaillé sur trois systèmes d'entreprise différents (dans trois sociétés différentes sur une période de dix ans) et je les ai écrits moins de cinq fois, ce qui inclut copier et coller deux fois un validateur de courrier électronique de base.


2
Beaucoup de texte est toujours spécifique à un domaine. Vous êtes un programmeur après tout. Le texte (sous forme de code source) est votre domaine. Manipuler efficacement du texte avec des expressions régulières fait de vous un programmeur plus efficace.
quanticle

2
@quanticle ça n'a pas de sens. Vous manipulez réellement votre code source avec des expressions régulières? Cela ressemble à un cauchemar absolu. Les expressions régulières font partie de votre code et votre code interagit avec des données spécifiques à un domaine.
NimChimpsky

3
Je manipule le code source avec des expressions régulières. Refactoriser de gros morceaux de code à la main est fastidieux et source d'erreurs. L'utilisation d'un éditeur prenant en charge la recherche et le remplacement d'expressions régulières (astuce: pratiquement tous les éditeurs supportent la recherche et le remplacement d'expressions rationnelles), le refactoring est beaucoup plus simple.
Quanticle

3
@Dunk, il ne dit pas qu'il s'agit d'un gain d'efficacité important sur la durée d'un projet, mais plutôt d'un gain important sur une courte période. J'ai également refactorisé des fichiers, avec des centaines, voire des milliers, de modifications. Au cours de la vie du projet, les heures économisées sont insignifiantes, mais je ne voulais sûrement pas prendre les heures ou les jours qu'il aurait fallu pour faire les mêmes changements à la main. Les IDE modernes peuvent faire une partie de ceci pour vous sans écrire une regex, mais ce n’est pas toujours le cas (recâbler un modèle d’assigment commun, par exemple).
Jmoreno

2
@NimChimpsky Regexps fonctionnent partout. Les IDE et les outils de refactoring ne fonctionnent que pour des langues spécifiques. Par exemple, votre outil de refactoring me permettra-t-il de parcourir tous mes modèles et de rechercher / supprimer une chaîne qui ressemble à un numéro de téléphone ( sites.google.com/site/steveyegge2/… )?
Quanticle

4

Les expressions régulières peuvent être considérées comme un outil de traitement très utile, multilingue, multiplateforme. Je peux utiliser regex dans mon code, je peux utiliser regex dans mon éditeur, je peux utiliser regex en ligne de commande!

Ce n'est pas juste que vous avez besoin, ou devriez les apprendre. C'est plus comme

HOU LA LA! J'AIME REGEX!


4

Vous n'avez pas besoin de connaître par cœur toutes les petites bizarreries de la regex pour être un grand programmeur, d'autant qu'elles ont toutes tendance à varier légèrement en fonction des implémentations et des langages de programmation. Ce que vous avez besoin de savoir est

  • Quels sont les expressions régulières et les expressions rationnelles.
  • Quel genre de choses font-ils efficacement (analyse des langages normaux)
  • Quels genres de choses sont inutiles (analyse de contenu imbriqué, utilisation de tonnes de références arrières)
  • Où trouver des informations sur la syntaxe chaque fois que vous devez en lire ou en écrire une.

Quoi qu'il en soit, vous n'avez même pas à vous soucier de savoir si cela nécessitera trop d'efforts pour les apprendre. Les opérateurs les plus simples ( ., *, |, (), etc.) sont presque universellement présents et vont d' une longue route!


Je pense que c'est un très bon point. Savoir utiliser les références arrières et les autres fonctionnalités avancées de certains moteurs RE n'est que moyennement utile. Dans de nombreux cas, la combinaison de l’utilisation des ER avec un peu de logique est plus lisible et plus facile à gérer.
Mark Bessey

3

Comme déjà mentionné, Regex est un outil , un outil très utile à mon humble avis.

Considérons cet exemple:

//fomat number using string.replace and regex in javascript
function numberWithCommas(x) {
    return x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
} 

Juste une ligne pour convertir par exemple un nombre comme celui-ci 1000000.00 en "1,000,000.00"

Utiliser toute autre méthode sera beaucoup plus complexe


2
et ce n'est pas complexe? cela utilise plusieurs fonctionnalités spéciales qui ne font pas partie de l'ensemble regex standard. une longueur et un remplissage simples feraient très bien l'affaire
freak ratchet

2

Ce n'est pas un must. Vous devez juste être conscient de leur existence et quand les utiliser. Les informations de syntaxe sont faciles à trouver et à corriger grâce à Google et aux outils en ligne.


2

Je vous conseillerais vraiment d'apprendre les expressions rationnelles. Au travail, lorsque nous recrutons des programmeurs, les candidats qui ne connaissent pas l’expression rationnelle sont généralement éliminés rapidement. Non pas parce qu'ils ont absolument besoin de connaître les expressions régulières, mais parce que c'est un très bon indicateur de leur niveau de compréhension de la programmation et de leur dépendance à la programmation.

Un vrai programmeur connaît leurs expressions régulières

Cependant, c'est un peu partial, car je suis principalement impliqué dans la programmation Web, où les expressions régulières sont quelque chose que vous rencontrerez sûrement beaucoup, tant du côté serveur que du côté client. Si vous étiez programmeur d'assemblage pour un système intégré dans un lave-vaisselle, vous ne rencontriez probablement pas d'expressions régulières du tout. Mais cela pourrait quand même vous être utile, car dans la plupart des cas, vous maîtriserez mieux votre environnement de développement lorsque vous connaissez des expressions régulières (rechercher et remplacer, rechercher un fichier, rechercher dans plusieurs fichiers, etc.).

En outre, il vous sera plus facile d’être reconnu par d’autres programmeurs si vous le savez.


En outre, il est inutile d'apprendre les spécifications complètes par cœur au début, car il existe de nombreux dialectes différents. Au lieu de cela, essayez de vous concentrer sur l’apprentissage des bases: (1) créez quelques expressions rationnelles simples et découvrez le sens de. * + {} [] () et - et quelques classes de base. (2) avec une spécification donnée à la main, essayez de comprendre ce qui se passe dans les expressions rationnelles que vous rencontrez.
Aron Cederholm

Pourquoi utilisez-vous reg exps pour votre développeur web? C'est ce que je fais et j'ai utilisé 5 fois plus de 10 ans.
NimChimpsky

Pour un démarreur: Analyser ou valider une saisie utilisateur (par exemple un courrier électronique, un code postal, des formulaires de recherche d’utilisateur). Mais aussi pour I18n et l10n pour les chaînes de traduction personnalisées et variables dans plusieurs langues / langues. Et ils ont bien sûr besoin d'aide pour la détection des erreurs et la gestion de nombreuses erreurs. Et dans le monde CMS / blogs / commentaires pour le balisage wiki / forum. Pour les données externes (saisie par l'utilisateur, pages grattées, ressources synchronisées, etc.), analyse, traitement et réécriture de contenu / liens / quoi que ce soit. De plus, pour beaucoup de statistiques et d'enregistrements (détection de navigateur, tri de référent, ...)
Aron Cederholm

-1 pour un commentaire aussi incroyablement ignorant "Un vrai programmeur ..."
Dunk

C’est une façon assez superficielle de valider la saisie de l’utilisateur et je serais surpris que vos regex soient exacts à 100% (la validation par email est la plus connue). Et je ne parle pas de cette "chaîne de traduction personnalisée et variable dans plusieurs langues / langues" que vous traduisez entre les langues à l'aide de regex - euh wtf? Statistiques - vous faites des statistiques avec des expressions régulières? La réécriture de liens / contenus avec regexs ressemble à une odeur de code.
NimChimpsky

1

Est-ce un must? Vous savez déjà ce que vous DEVEZ savoir: leur existence, leur nature et leur utilité. Votre travail en tant que programmeur consiste à résoudre des problèmes. Vous en savez maintenant suffisamment pour commencer à les intégrer dans votre solution pour résoudre votre problème. Devriez-vous apprendre les regex? Absolument. La priorité est à vous ... il y a des emplois où ils seront utilisés tous les jours et des emplois où ils ne le seront jamais. Un simple guide vous indiquerait le nombre de motifs requis pour résoudre les problèmes que vous vous attendez à rencontrer.


1

Hmm, j'ai besoin de séparer par des virgules et de sortir cette liste de chaînes, laissez-moi écrire une fonction contenant une boucle for qui prend un argument de séparateur et continuez à les ajouter ensemble ... ou je pourrais simplement utiliser cette commande existante 'join'.

J'ai besoin de trier ces objets complexes en fonction de quelques attributs que chaque objet a, laissez-moi me rappeler comment écrire une fonction de tri qui le fait, oh non attendez, je peux simplement utiliser la fonction de tri standard existante que ce langage prend en charge. Je vais devoir apprendre à écrire un comparateur personnalisé, mais cela ne devrait pas être trop difficile, c'est évidemment mieux que de conserver ma propre fonction de tri.

L'idée des méthodes virtuelles me fait un peu peur, mais cela devrait m'aider à réduire ces listes, chacune pour un type d'élément différent, en une seule liste. Ensuite, je n'ai pas à écrire une demi-douzaine de déclarations similaires traitant chaque liste de manière différente. J'imagine que je devrais étudier beaucoup et apprendre ces choses car mon code sera beaucoup plus simple et plus propre si je le fais.

Je dois extraire de ce fichier texte ces paires de mots et valeurs parmi tous ces autres bruits, laissez-moi écrire un analyseur syntaxique de cinquante lignes pour lire les caractères un par un et si l’un des caractères ressemble au début de ce que je suis. En recherchant, je vais définir cette variable d'état et commencer à l'analyser différemment, etc. etc. Bien sûr, mon cas est tellement spécial que personne d'autre n'a rencontré un problème comme celui-ci auparavant et a inventé une solution générique prenant une ligne de code pour le faire. Cela me rappelle que je devrais apporter ces livres de programmation que je n'ai jamais lus à la librairie de livres d'occasion.


1

Réponse courte: Non mais… la connaissance, c'est le pouvoir.

Je suis un développeur Web et je trouve que toute expression régulière dont j'ai généralement besoin a déjà été écrite pour moi. Cependant, j'ai eu des problèmes avec le copier-coller et ne pas réaliser ce qu'il faisait ou non, ce qui présente un danger de copier-coller TOUT.

Un exemple: un e-mail regex que j'ai copié et collé ne permettait pas une période ou plus dans un e-mail qui est autorisé dans la spécification d'adresse e-mail. En fait, beaucoup de gens utilisent gmail avec actualemail+sitename@gmail.com pour faciliter le filtrage du 'nom du site' s'ils choisissent de spammer.


0

expressions régulières? Hmmm ... il est parfois utile de les connaître, mais la plupart du temps, vous utilisez toujours la même chose. J'ai utilisé regex assez souvent mais je ne dirais pas que je suis bon avec ça. Je n'aime pas du tout et je pense qu'il y a des choses plus importantes à savoir que les regex.

Mais dans la validation de formulaires ou de données, il est très utile. Je pense que presque chaque forme professionnelle est validée avec regex. ASP.NET l’utilise.

Mais du tout: essayez de faire une expression quand vous en avez besoin et sauvegardez-la. Vous les utiliserez tous plus d'une fois, espérons-le. Mais ne perdez pas votre temps avec RegEx!


0

Cela dépend de la zone / de la plateforme sur laquelle vous travaillez

  1. Pour une application de bureau, vous pouvez mener une vie kool sans rien connaître des expressions régulières. Mais attention, Visual Studio a une recherche par expression régulière, mais je me demande si quelqu'un l'utilise régulièrement. Je ne pense pas (vous devez corriger votre expression régulière d’abord parce que vous pouvez effectuer une recherche :)).

  2. En tant que développeur Web, vous devrez probablement apprendre l’expression régulière. Vous pouvez vous en tirer parce que vous pouvez facilement trouver un extrait de code en ligne qui vous suffira, mais que l’apprentissage vous aidera.

Il existe des domaines tels que la documentation, les litiges, les affaires juridiques où l’expression régulière est un outil indispensable. Tu dois le savoir. Sinon, vous n'obtiendrez tout simplement pas le travail.

En bref, si cela ne fait pas partie d'une description de travail, ne vous en préoccupez même pas. Si vous aimez l'apprendre, apprenez-le pour vous amuser.


0

Les expressions régulières sont des outils très utiles et il existe de nombreuses situations dans lesquelles les programmeurs doivent les utiliser. Vous ne devriez pas les apprendre tous par cœur à utiliser. Utilisez simplement la référence et faites votre travail. Après 10-20-50-100 (selon le programmeur) des tâches pour lesquelles vous avez utilisé des expressions régulières, vous les connaissez toutes par cœur. Ils sont appris par eux-mêmes, vous ne devriez pas les apprendre spécialement.


0

Je vois déjà beaucoup de réponses à cela, mais elles semblent toutes porter sur le mérite de connaître les expressions régulières en tant qu'outil dans la boîte à outils du programmeur.

Je préfère de loin penser aux expressions régulières en tant que type de connaissances qui permettent de mieux comprendre le fonctionnement des ordinateurs. Une fois que quelqu'un comprend vraiment ce qu'est un langage courant et que vous pouvez l'exprimer en trois opérations simples, je pense que cela leur donne quelque chose de plus qu'un simple outil de validation de chaînes simples.

Ils sont en mesure de mieux comprendre l'analyse syntaxique en général, ce qui est utile pour à peu près tout type de programmation, et de mieux comprendre le fonctionnement des outils que nous utilisons régulièrement (compilateur, éditeur, navigateur, etc.).

Les avantages pratiques de l' utilisation d' expressions régulières sont bien sûr énormes. Même si vous ne "programmez" pas avec eux - j'utilise des expressions régulières en faisant "recherche / remplacement" dans mon éditeur tout le temps, et mesure dans quelle mesure ils me rendent beaucoup plus productif.

Donc, bien que ce ne soit pas nécessaire, je pense que c'est l'un des premiers outils qu'un programmeur devrait apprendre.


0

Rob Pike ne le pense pas :

Les expressions régulières sont difficiles à écrire, bien à écrire et peuvent être coûteuses par rapport à d'autres technologies. Les techniques de lexing et d'analyse standard sont si faciles à écrire, si générales et si adaptables qu'il n'y a aucune raison d'utiliser des expressions régulières.

Une autre façon de voir les choses est que les lexeurs et l'analyse correspondent à des modèles définis de manière statique, mais la force des expressions régulières réside dans le fait qu'elles fournissent un moyen d'exprimer des modèles de manière dynamique. Ils sont excellents dans les éditeurs de texte et les outils de recherche, mais lorsque vous savez, au moment de la compilation, tout ce que vous recherchez, les expressions régulières apportent beaucoup plus de généralité et de souplesse que nécessaire.

Encourager les expressions régulières en tant que panacée pour tous les problèmes de traitement de texte n'est pas seulement un travail d'ingénieur paresseux et médiocre, cela renforce également leur utilisation par des personnes qui ne devraient pas les utiliser du tout.

Il est intéressant de noter que Pike reconnaît qu’ils ont une place, bien sûr, et à mon humble avis, les expressions régulières sont un outil assez puissant, un outil qui récompense absolument le temps que j’ai passé à apprendre à utiliser, et de ce point de vue, je recommanderais absolument d’apprendre leur. Mais il est possible que le véritable problème, c’est qu’il s’agisse d’un pansement qui m’a permis d’en savoir moins que je devrais sur le laxisme et l’analyse syntaxique. :)


0

Permettez-moi de dire que les expressions régulières sont souvent le bon outil pour le travail et sont très pratiques, en particulier pour les applications qui font beaucoup de traitement de texte. Cependant, les mémoriser est une folie. J'ai une feuille de triche fixée sur mon mur qui contient tous les caractères spéciaux, ancres, classes de caractères, modificateurs de motif, métacaractères ... Il suffit de passer les 20 minutes nécessaires pour apprendre à les utiliser et obtenir une feuille de triche à conserver. trace de tout le reste. Tout ce dont vous avez besoin, c’est de pouvoir écrire une expression régulière lorsque vous en avez besoin, généralement tous les six mois environ, aussi souvent que vous rencontrez un problème qui en fait le meilleur outil à utiliser pour le poste. Sauf si vous êtes sur Perl, Latex, Emacs ou une autre équipe de traitement de texte lourde.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.