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:
regular-expressions
utilisateurs
la source
la source
Réponses:
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.
la source
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.
la source
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.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".
la source
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 .
la source
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.
la source
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".
la source
Jeff Atwood a écrit un excellent blog sur les expressions régulières, dans lequel se trouve cette citation étonnante:
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.
la source
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.
la source
citer une autre réponse:
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.
la source
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!
la source
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
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!la source
Comme déjà mentionné, Regex est un outil , un outil très utile à mon humble avis.
Considérons cet exemple:
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
la source
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.
la source
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.
la source
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.
la source
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.
la source
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 [email protected] pour faciliter le filtrage du 'nom du site' s'ils choisissent de spammer.
la source
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!
la source
Cela dépend de la zone / de la plateforme sur laquelle vous travaillez
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 :)).
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.
la source
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.
la source
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.
la source
Rob Pike ne le pense pas :
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. :)
la source
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.
la source