Forum Programmation.autre Expression régulière

Posté par . Licence CC by-sa
Tags :
0
22
oct.
2016

Bonjour, je suis un peu perdu dans les expressions régulières. Je voudrais remplacer tous les « A » par des « a » mais seulement dans le cas où « a » n'est pas suivi ou précédé par un ou plusieurs « a ».
Par exemple, l'expression régulière devrait trouver et remplacer

« abord » par « Abord » mais ne devrait pas toucher à

« baabor », « taaabour », mais devrait remplacer

« bbaatar » par « bbaatAr »

J'espère que c'est clair. Merci d'avance pour votre aide.

Travailler avec des expressions rationnelles

83
8
fév.
2016
Technologie

Les expressions rationnelles sont un outil d’analyse de texte par un ordinateur. Elles permettent de décrire des enchaînements de caractères d’une complexité suffisamment grande pour être réellement utiles, mais suffisamment faible pour être implémentées efficacement. Elles sont d’une importance capitale pour le théoricien des langages comme pour l’UNIX power user.

Dans cette dépêche, nous :

  • décrivons brièvement la notion abstraite d’expression rationnelle et recensons les implémentations les plus courantes sur un système Unix ;
  • présentons quelques commandes permettant de rechercher des motifs décrits par une expression rationnelle dans un texte, réécrire des fichiers automatiquement ou transformer et analyser des fichiers structurés automatiquement en utilisant des expressions rationnelles ;
  • montrons comment améliorer votre productivité avec Emacs grâce aux expressions rationnelles.

Dans cette dépêche, nous allons nous pencher sur les expressions rationnelles (souvent nommées abusivement expressions régulières suite à une traduction littérale de regular expression). Elles permettent de représenter formellement un motif de recherche, par exemple : un caractère alphabétique majuscule suivi de quatre caractères minuscules, puis deux chiffres et un point à la fin. Les expressions rationnelles représentent un outil puissant pour qui sait les utiliser à bon escient mais nécessitent une phase d’apprentissage non négligeable. La diversité des moteurs et des syntaxes n’aide pas non plus à leur simplicité, et les confusions entre les différents outils peuvent parfois donner des résultats surprenants.

Forum Programmation.c++ [Résolu] Erreur immonde avec boost/regex

Posté par . Licence CC by-sa
Tags :
0
31
jan.
2016

Hello,

J'essaye d'écrire un programme pour classer mes milliers de photos dans des dossiers, selon leur date de prise de vue.

Une grande partie est constituée de captures d'écran ou de photos échangées par Facebook/MMS/autre, et les données EXIF ne contiennent donc pas cette date. Les dates de création et de modification des fichiers ne correspondent pas non plus.

En revanche, beaucoup de fichiers ont leur date de prise de vue dans leur nom, de la forme : IMG_20151226_124053.jpg (pris (...)

Journal Vivent les journaux binaires !

Posté par . Licence CC by-sa
18
7
mai
2015

Bonjour cher 'nal,

Comme toi, j'aime systemd, j'aime les jounaux binaires, j'aime la manière facile d'interroger le journal binaire, et j'aime que la machine travaille pour moi.

Faire des regex, c'est long, pas lisible, et chiant. La machine peut faire ça pour moi.

Chercher un symbole avec less, c'est pas pratique quand y'a des doublons.

grep n'est pas pratique sur un grand fichier, et multiplier les fichiers journaux c'est franchement pas génial pour avoir une organisation de ces fichiers bien (...)

Journal Journal Bookmark #1

Posté par (page perso) . Licence CC by-sa
15
13
sept.
2014

Dimensions, une extension Chrome permettant de mesurer, en pixels, tous les éléments d'une page web.

Un expérience testant les limites de la commandes cp : que ce passe t-il lorsqu'on copie 432 millions de fichiers totalisant 39 To ?

Morte, une expérience pour faire une sorte de templating (comme ceux de C++) automatique : il regarde ce qui est calculable en fonction des informations dont il dispose dans le code et précompile

Algomation, un site pour visualiser des (...)

Regexcrossword : un subtil mélange de sudoku et de mots croisés, à la sauce Regex

Posté par (page perso) . Édité par ZeroHeure, Benoît Sibaud et Xavier Teyssier. Modéré par patrick_g. Licence CC by-sa
Tags :
40
24
jan.
2014
Jeu

C'est vendredi, alors voici de quoi se détendre, ou garder les neurones bien chauds pendant le weekend. Il s'agit d'un petit jeu en ligne dont le but est de retrouver des caractères, en suivant les expressions régulières (ou expressions rationnelles) posées en ligne et en colonne.
La présentation est la même que celle des mots croisés, mais la recherche de la solution tend vers celle appliquée pour la résolution d'une grille de sudoku.

Un exemple simple, issue de l'aide du jeu

Le jeu se découpe en 8 niveaux de difficulté, rassemblant chacun de 5 à 10 grilles.

Bien que les premiers puzzles s'enchaînent facilement, il faut avouer que le dernier niveau présente un défi beaucoup plus corsé, avec une grille de 5×5 caractères à deviner.

Si vous êtes intéressé ou curieux, je vous invite à suivre le lien en bas de dépêche. Bon weekend !

NdM: il s'agit d'un jeu en ligne gratuit dans le but de s'entraîner avec les expressions rationnelles (en anglais regular expressions ou regex). On peut jouer anonymement, mais pour suivre sa progression il faut se connecter avec un compte facebook. Si vous connaissez des alternatives libres de jeux de regexp, faites en part dans les commentaires.

Forum Programmation.shell Utiliser la sortie d'une commande comme chaîne de recherche de awk

Posté par . Licence CC by-sa
Tags :
1
23
déc.
2013

Bonjour.

Je cherche à obtenir le "device file" correspondant à un chemin (sur une clé USB, en l'occurrence).

Disons que mon chemin est /media/cle/rep1/rep2/rep3/fichier. (J'ai accès à ça facilement dans Thunar via les actions personnalisées.)

Je veux :

  • extraire /media/cle
  • chercher ça dans /proc/mounts
  • en déduire /dev/sdb1 (par exemple)

Partant de /media/cle, je peux réaliser les étapes 2 et 3 avec awk :

awk '/\/media\/cle/ {print $1}' /proc/mounts

J'arrive à extraire /media/cle avec sed :

echo /media/cle/rep1/rep2/rep3/fichier | sed -e 
(...)

Forum Programmation.perl [resolu] regexp qui ne marche pas, enfin pas toujours.

Posté par .
Tags :
2
6
déc.
2012

le texte que je cherche à nettoyer tout sur une seule ligne, au milieu d'un fichier que je parcours ligne à ligne :

 src="C2_Fr_OIITXD.jpg" pageID="1" width="1651" height="2335" Sender="Moi" Receiver="" Script="" Document_Location="" Category="2a" Document_Date="05/09/2013" Document_Object="Bon de livraison" Language="french" NumPage="2" Receiver_Address="une adresse avec un numero des espaces, des virgules" Receiver_Name="marie ubert" Phone="+33(0)1.22.33.44.55"

le code qui vide les champs
il fait ca avec tous les champs, j'utilise la meme logique sur chacun des champs

if ($_ =~ /(Sender=".*?")/)
 {
   $_=~
(...)

Forum Programmation.shell ajouter dans un serveur ldap les destinataires d'un mail

Posté par (page perso) .
Tags :
0
22
juin
2012

Afin de pallier l'impossibilité d'écrire dans un annuaire LDAP avec Thunderbird, j'essaye de le faire à la main directement depuis mon serveur.

Mes mails sont au format MAILDIR, donc un fichier par mail. Pour les récupérer, pas de soucis. Ne garder que les lignes qui m'intéressent, pas trop de problèmes non plus. Par contre, isoler les adresses mails de l'entête puis les passer dans une commande ldapadd, là ca coince.

Ca c'est une ligne To: d'un mail :

To: "une
(...)

Forum Programmation.python Python, substitution et regex

Posté par (page perso) .
Tags :
1
5
jan.
2012

Salut,

Je voudrais faire une substitution avec des chaines qui contiennent '\'. Je me heurte à un soucis : visiblement le '\' d'échapemment est supprimé à chaque fois que la chaine '<char>' est interprétable en ascii.

Par exemple :

$ ipython
Python 2.7.2+ (default, Dec 18 2011, 00:33:35)
In [1]: import re

In [2]: re.sub('pattern', '\\test', 'replace
(...)

Forum Linux.général Que prendre entre sed et awk ?

Posté par .
Tags :
2
30
août
2011

Bonjour tout le monde,

je me demande lequel de ces outils, entre sed et awk, est le plus adapté à ce que je veux faire.
Je voudrais prendre sur l'entrée standard (fichier ou par tube) un texte, vérifier chaque mot par des expressions régulières et, selon l'expression trouvée pour le mot, l'entourer par des balises (disons des balises HTML).
La sortie est un fichier texte ou alors la sortie standard.

J'ai lu les articles sed et awk sur Wikipédia (...)

Forum Programmation.shell [réglé] [ZSH] RegExp et Qualifiers ?!

Posté par (page perso) .
2
1
juil.
2011

Hello,

Voici un petit problème auquel je suis confronté et j'aimerai avoir votre avis / aide si possible.

Soit une arborescence qui ressemble à ceci:

$ tree -d
.
├── reseau
│   ├── 10.0.0.28
│   │   ├── 2011-07-01
│   ├── 10.0.0.58
│   │   ├── 2011-06-30
│   ├── 10.0.130.10
│   │   ├── 2011-06-30
│   │   ├── 2011-07-01
└── serveurs
    ├── 10.0.128.29
    │   ├── 2011-06-28
    │   ├── 2011-06-29
    │   ├── 2011-06-30
    │   ├── 2011-07-01
    ├── 10.0.128.31
    │   ├── 2011-06-28
    │   ├── 2011-06-29
(...)

Forum Programmation.shell les regex sed dingue comme ce n'est pas facile...

Posté par .
Tags :
2
25
mai
2011

bonjour,

je veux passer un flux de texte dans divers pipes pour le transformer à l'aide de sed. Ça fait plus de 3/4 d'heure que je lutte avec ça.

J'ai :

du texte et puis à la fin de la ligne, un numéro par exemple 42

je veux obtenir :

du texte et puis à la fin de la ligne, un numéro par exemple [[42 42]]

Dans l'idéal, toutes les lignes qui finissent par un nombre auraient ce nombre transformé (...)

Journal Sortie de Perl 5.14.0

Posté par (page perso) . Licence CC by-sa
25
15
mai
2011

Bonjour,

Perl 5.14.0 vient de sortir, au programme (entre autre) :

  • Gestion d'Unicode 6.0 avec plein d'améliorations concernant les fonctionnalités basées sur Unicode.

  • Gestion améliorée d'IPv6

  • L'autoconfiguration du client CPAN s'est simplifiée

  • Un nouveau drapeau /r qui fait des substitutions s/// non destructives

  • Un nouveau drapeau pour les expressions rationnelles pour indiquer si une chaîne marquée doit-être traitée comme du ASCII ou de l'Unicode.

  • Nouvelle syntaxe package Foo { }

  • Utilisation de la mémoire et du CPU réduite

Télécharger : (...)