OVH Cloud OVH Cloud

Expression régulière

3 réponses
Avatar
r1
Bpnjour,
je cherche une expression régulière capable d'extraire (avec grep ou
sed..) les commentaires de la forme: /** */

Si quelqu'un peut m'aider....
Merci
Erwan

3 réponses

Avatar
Stephane Chazelas
2004-02-7, 01:43(-08), R1:
Bpnjour,
je cherche une expression régulière capable d'extraire (avec grep ou
sed..) les commentaires de la forme: /** */


Plus précisément, ces commentaires sont de quelle forme ?

"/**" suivi d'une suite de caracteres suivis de "*/"
et tu veux récupérer la suite de caractères?

Typiquement, dans
"/*****/", tu veux "**" ?

Le language, c'est du C ou similaire (Java, C++,...) ? Enfin ce
qui est important, c'est le format des "...." et des '...'.

Les commentaires peuvent-ils s'étendre sur plusieurs lignes ?

Peut-il y avoir des commentaires types C++ "// ...".
Dans ce cas, doit-on ignorer les /** qui sont après ?

Dans le cas ou toutes les réponses sont "oui":

perl -0777 -pe'
s{ (?{$r=""})
/**(?!/)(.*?)*/(?{$r="[".$1."]n"})
| /*(.*?)*/
| //[^n]*
| "(?:.|.)*?"
| '''(?:.)?.*?'''
| ??'''
| .[^'''"/]*
}{$r}xsg' fichier.c

Exemple. Sur un fichier c qui contient

printf("/** "q%csd", /** 1 */ '"'); /**
2 */ /***/ // /** blah

J'obtiens:

[ 1 ]
[
2 ]
[]

C'est possible aussi avec le sed, mais ça sera plus compliqué.

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]

Avatar
manu
R1 wrote:

je cherche une expression régulière capable d'extraire (avec grep ou
sed..) les commentaires de la forme: /** */


grep '/**.**/'

--
Emmanuel Dreyfus
A lire: 240 pages en français sur l'administration UNIX avec BSD
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3


Avatar
r1
(Emmanuel Dreyfus) wrote in message news:<1g8sd2c.bkymtv1gwykevN%...
R1 wrote:

je cherche une expression régulière capable d'extraire (avec grep ou
sed..) les commentaires de la forme: /** */


grep '/**.**/'


Merci pour vos réponses!