Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: COup de main grep dans BBEdit

11 views
Skip to first unread message

Olivier Miakinen

unread,
Feb 26, 2023, 12:14:04 PM2/26/23
to
[diapublication, suivi vers fr.comp.lang.regexp]

Bonjour,

Le 26/02/2023 à 17:55, "Benoît L." a écrit :
>
> Mon problème : supprimer une série d’espace et fins de lignes avant une
> minuscule et pas une majuscule.
> Exemple de texte :
> « Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non
> risus.
> Suspendisse lectus tortor, dignissim sit amet, adipiscing nec,
> ultricies. Maecenas ligula massa… »
>
> Résultat :
> « Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non
> risus.
> Suspendisse lectus tortor, dignissim sit amet, adipiscing nec,
> ultricies sed. Maecenas ligula massa… »

Ton exemple m'a bien l'air d'avoir été saboté par les sauts de ligne
ajoutés par ton nouvelleur. Sans compter un « sed » qui a été ajouté
subrepticement après un « ultricies ».

> Je sais rechercher « \n_____ » mais là les majuscules ne sont pas
> gérées, les espaces devant elles aussi sont supprimées. (_=space)
>
> Je sais rechercher _____a =>a puis _____b=>b…, mais ce n’est pas
> « drôle ».
>
> En grep je sais rechercher « \n_____[a-z] » mais je ne sais pas
> conserver la lettre dans le remplacement. Comment fait-on ?

Est-ce que ton outil de regexp connaît les assertions des regexp
de perl ? Si oui, alors c'est facile. Sinon, merci de donner un
lien vers la doc de l'outil, pour ceux qui ne connaissent pas le
monde Mac.

Suite sur fr.comp.lang.regexp.

--
Olivier Miakinen

Olivier Miakinen

unread,
Feb 26, 2023, 12:27:05 PM2/26/23
to
Le 26/02/2023 à 18:14, je répondais à Benoît L. :
>>
>> Mon problème : supprimer une série d’espace et fins de lignes avant une
>> minuscule et pas une majuscule.
>> [...]
>>
>> En grep je sais rechercher « \n_____[a-z] » mais je ne sais pas
>> conserver la lettre dans le remplacement. Comment fait-on ?
>
> Est-ce que ton outil de regexp connaît les assertions des regexp
> de perl ? Si oui, alors c'est facile.

D'après une recherche rapide sur la toile, il semble que BBEdit ou
TextWrangler utilise PCRE (perl-compatible regular expressions).

Dans ce cas, c'est effectivement facile. Il suffit de remplacer :
[a-z]
qui détecte une minuscule mais qui la consomme en même temps, par :
(?=[a-z])
qui détecte une minuscule sans la consommer.

Voici un lien vers une explication des assertions; c'est dans la doc
de PHP mais c'est valable pour tout logiciel utilisant PCRE :
<https://www.php.net/manual/fr/regexp.reference.assertions.php>

--
Olivier Miakinen
0 new messages