|
|
|
|
Bonjour,
J'ai un problème vis-à-vis d'une expression régulière afin d'exprimer une négation sur une chaîne de caractères.
Je travaille avec des regexpr Javascript mais mon problème est je pense plus général...
J'ai un texte HTML dans lesquel je souhaite retirer toute les balises sauf les balises "annotation". Je vais donc utiliser un replace mais pour l'instant je teste avec un match afin de trouver mes motifs à remplacer.
J'utilise donc l'expr:
/</?[^>]*>/gi
celle-ci me trouve toutes les balises, normal
ensuite afin d'éliminer les balises annotion je me suis diriger vers
/</?[^annotation][^>]*>/gi
Ceci ne fonctionne bien évidemment pas car le circonflex au debut des crochets suivi de caractères veux dire "aucun de ces caractères". Pas bon dans mon cas, car je souhaite me baser sur une chaîne de caratères.
J'ai ensuite tenter un truc du genre
/(</?(?:[^a]|a[^n]|an[^n]|ann[^o])[^>]*>?)/gi
La regExpr ci dessus voudrait dire toutes les balises sauf les balises "anno". J'ai déja fais des choses comme ça en python mais dans mon cas cela n'a pas l'air de fonctionner.
J'imagine que vu que je veux repérer la chaîne annotation il faut la mettre entre pararenthèses et ensuite exprimer une négation sur celle-ci mais je n'arrive pas à mon but !!!!!
Quelqu'un aurai-t-il une idée s'il vous plaît ???? merci
Tu as deja essayé ça je suppose :
|
Salut,
|
Merci,
|
Salut,
|
Et on continue.....
|
Et on continue....
while ( $var =~ /b/g) {
print "b trouvé dans la postion pos($var) - 1.\n";
}
Donc dans un context scalarie le modificateur g permet une recherche progressive. Dans un contexte de liste on obtient les occurences. En ce cas le nbr des occurence on les obtiens en utilisant la liste dans un context scalaire ( @nb + 0 ou scalar @nb ) @nb = svar =~ /b/g Je vais essayer de faire un script en perl pour traiter ton problème (disons un cas général) vu que maintenant je sais ce que tu veux. J'aimerai quand même avoir une partie ou le fichier entière ainsi que un exemple concret de résultat que tu veux obtenir. Je préfère connaître la structure de fichier avant de me lancer avec les regex (puisque en fait le but de regex est de faire correspondre et pas de ne pas correspondre). Peut être tu vas demander pourquoi? Ben il y a plein des questions que je me pose. tu as une balise par ligne ou plusieurs? entre les balises tu as des espaces, tabulations ou elles sont collées debut/><fin ou debut/> <fin les balises tiens sur une seule ligne? <balise ....../> ou sur plusieurs <balise.... ..... /> ? |
Re,
|