Quel est le meilleur générateur / explicateur d’expression régulière

Je suis nouveau dans la programmation et j’utilise C # 2010. Il y a quelques expressions régulières assez longues dans le code que je dois conserver. Aussi, j’ai besoin d’parsingr des fichiers texte avec beaucoup d’informations. Pouvez-vous recommander un outil pour ces tâches?

Deux outils:

regexbuddy -> http://www.regexbuddy.com/

et expresso -> http://www.ultrapico.com/Expresso.htm

Le premier n’est pas gratuit alors que le second l’est. Les deux offrent des caractéristiques similaires. Personnellement, j’utilise le premier, je ne sais pas pourquoi: D

Cliquez sur la case “Expliquer” avant de cliquer sur Submit à l’ adresse http://myregextester.com et vous obtiendrez un excellent résultat de YAPE :: Regex :: Explain

The regular expression: (?-imsx:[foo]bar(baz)) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?-imsx: group, but do not capture (case-sensitive) (with ^ and $ matching normally) (with . not matching \n) (matching whitespace and # normally): ---------------------------------------------------------------------- [foo] any character of: 'f', 'o', 'o' ---------------------------------------------------------------------- bar 'bar' ---------------------------------------------------------------------- ( group and capture to \1: ---------------------------------------------------------------------- baz 'baz' ---------------------------------------------------------------------- ) end of \1 ---------------------------------------------------------------------- ) end of grouping ---------------------------------------------------------------------- 

Un autre outil en ligne: http://gskinner.com/RegExr/

@ Lincoln Je sympathise avec votre problème. Malheureusement, les regex ont très peu de place pour la documentation interne, donc une ligne de 50 lignes est essentiellement un programme binary. Sachez que si vous changez un caractère, tout se brisera. Voici par exemple un regex pour une date:

^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$

Analyser cette expression régulière avec RegexBuddy correspond à une date au format yyyy-mm-dd entre le 1900-01-01 et le 2099-12-31 , avec un choix de quatre séparateurs. Les ancres s’assurent que la variable entière est une date et non un morceau de texte contenant une date. L’année correspond à (19|20)\d\d . J’ai utilisé l’alternance pour permettre aux deux premiers chiffres d’être 19 ou 20 .

Si vous ne saviez pas que c’était une date, il faudrait une approche de type détective ou cryptanalytique pour déterminer ce qu’il faisait. Regex buddy et ainsi aidera un peu, mais pas donner la sémantique.

Mon hypothèse est que votre regex de 50 lignes (je frémis quand j’écris ces mots) aura des dates, des identifiants de société et des adresses, et Dieu sait ce qu’il contient.

La seule bonne nouvelle est que les expressions rationnelles dépendent moins de la langue qu’elles ne l’étaient. Donc, s’il a été écrit à l’origine en Java, il fonctionnera probablement en C # et vice versa.

Est-il simplement utilisé pour identifier des champs ou existe-t-il des groupes de capture? Ce sont des crochets équilibrés qui extraient des sous-champs dans un programme via une API. En examinant le contenu de ces champs, vous pouvez avoir un pointeur utile sur ce que fait la regex.

Avec pragmatisme, à moins que ce ne soit sur le chemin critique, essayez de le toucher le moins possible!

Je viens de trouver un outil d’ explication d’ expression régulière vraiment cool:

 http://www.regexper.com/ 

“En coulisse, RegExper est une application Ruby qui traduit des expressions régulières en une image SVG. Le SVG est incorporé dans la page, mais il devrait être possible de l’extraire ou de le copier pour l’utiliser dans votre propre documentation.

Pour plus d’infos, lisez ce billet:

 http://www.sitepoint.com/regexper-regular-expressions-explained/