Expressions rgulires Un exercice pour lapprentissage Exercice Lquipe

  • Slides: 25
Download presentation
Expressions régulières Un exercice pour l’apprentissage

Expressions régulières Un exercice pour l’apprentissage

Exercice : L’équipe veut insérer les mots pout « chapitre » et « verset

Exercice : L’équipe veut insérer les mots pout « chapitre » et « verset » dans leurs Renvois en Paratext. Donc, trouver des expressions règulières pour changer : +xt 1 Muluuk 10. 19+xt* +xt Khuruuj 17: 1 -7+xt* à +xt 1 Muluuk fasul 10 aaya 19+xt* +xt Khuruuj fasul 17 aaya 1 -7+xt*

Recher / Remplacer On peut éditer ou recher et remplacer chaque cas individuellement, p.

Recher / Remplacer On peut éditer ou recher et remplacer chaque cas individuellement, p. ex: Recher: +xt 1 Muluuk 10. 19+xt* Remplacer: +xt 1 Muluuk fasul 10 aaya 19+xt* Mais il y a 440 renvois – c’est beaucoup de travail ! Y-a-t-il de moyen (avec les expressions régulières) de généraliser l’expression du texte recherché qui peut correspondre à tous les renvois à la fois ?

Boîte à outils pour les expressions régulières Expr Sens – ce qui sera trouvé

Boîte à outils pour les expressions régulières Expr Sens – ce qui sera trouvé . n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) * 0 ou plus du précédent (gourmand!) ? gourmand → le minimum nécessaire ( ) regroupement | choix entre les options [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé Bâtir une expression Noter d’abord quelques caractères

Expr Sens – ce qui sera trouvé Bâtir une expression Noter d’abord quelques caractères ont un sens spécial dans une expression régulière, et si nous voulons utiliser ces caractères, ils doivent être précédé par une barre oblique : Pour trouver : +xt 1 Muluuk 10. 19+xt* . n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) * 0 ou plus du précédent (gourmand!) ? gourmand → le minimum nécessaire ( ) regroupement | choix entre les options [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y Utilisons l’expression : d un chiffre (digit) \+xt 1 Muluuk 10. 19\+xt* s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Si nous voulons trouver ces deux textes : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression Utilisons quelle expression ? \+xt Muluuk 10. 19\+xt* [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Si nous voulons trouver ces deux textes : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression Utilisons quelle expression ? \+xt Muluuk 10. 19\+xt*. Peut trouver « xt 2 Muluuk » , « xt ɓ Muluuk » , « xt @ Muluuk » , « xt Muluuk » [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Si nous voulons trouver ces deux textes : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression Utilisons quelle expression ? \+xt Muluuk 10. 19\+xt* d Peut trouver « xt 2 Muluuk » , « xt 9 Muluuk » , « xt 0 Muluuk » [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Si nous voulons trouver ces deux textes : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression Utilisons quelle expression ? \+xt Muluuk 10. 19\+xt* [12] Peut trouver « xt 1 Muluuk » , « xt 2 Muluuk » [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Maintenant, regardons le nom du livre : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression Utilisons quelle expression ? \+xt [12] 10. 19\+xt* [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Maintenant, regardons le nom du livre : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression Utilisons quelle expression ? \+xt [12] 10. 19\+xt* …… Peut trouver « 2 Muluuk 10 » , « 1 bababa 10 » , « 2 !@#$%^ 10 » , « 1 5+5=10 10 » , « 2 10 » [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Maintenant, regardons le nom du livre : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression Utilisons quelle expression ? \+xt [12] 10. 19\+xt* www Peut trouver « 2 Muluuk 10 » , « 1 bababa 10 » , « 2 123456 10 » [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Maintenant, regardons le nom du livre : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression Nous connaissons la longueur du mot ? Non \+xt [12] 10. 19\+xt* w+ Egale a w, www, etc. Peut trouver « 2 Muluuk 10 » , « 1 ba 10 » , « 2 1234567890 10 » [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Si nous voulons trouver ces deux textes : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression L’expression pour les chiffres ? \+xt [12] w+ \+xt* [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Si nous voulons trouver ces deux textes : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt 2 Muluuk 10. 19+xt* ( ) regroupement | choix entre les options Bâtir une expression L’expression pour les chiffres ? d+. d+ \+xt [12] w+ \+xt* [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Mais nous voulons trouver d’autres livres : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt Khuruuj 17: 1 -7+xt* ( ) regroupement | choix entre les options Bâtir une expression Comment faire ? [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Mais nous voulons trouver d’autres livres : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt Khuruuj 17: 1 -7+xt* ( ) regroupement | choix entre les options Bâtir une expression Choix: \+xt (1 Muluuk|Khuruuj|. . . ) Besoin d’une liste de tous les livres [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Mais nous voulons trouver d’autres livres : * 0 ou plus du précédent (gourmand!) +xt 1 Muluuk 10. 19+xt* ? gourmand → le minimum nécessaire +xt Khuruuj 17: 1 -7+xt* ( ) regroupement | choix entre les options Bâtir une expression N’importe quel mot avec w+ [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y \+xt ([123] )? w+ d+\+xt* d un chiffre (digit) Le chiffre avant le livre n’est pas obligatoire. s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Essayer d’être le plus spécifique possible. * 0 ou plus du précédent (gourmand!) Attention aux expressions gourmandes ! ? gourmand → le minimum nécessaire Si nous rendons le nom de livre plus générique. . . ( ) regroupement | choix entre les options Bâtir une expression \+xt. + d+\+xt* [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y Il trouve quelle phrase ? d un chiffre (digit) +xt Khuruuj 23. 4+xt* du texte +xt Khuruuj 25. 7+xt* s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Essayer d’être le plus spécifique possible. * 0 ou plus du précédent (gourmand!) Attention aux expressions gourmandes ! ? gourmand → le minimum nécessaire Si nous rendons le nom de livre plus générique. . . ( ) regroupement | choix entre les options Bâtir une expression \+xt. + d+\+xt* [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y Il trouve quelle phrase ? d un chiffre (digit) +xt Khuruuj 23. 4+xt* du texte +xt Khuruuj 25. 7+xt* s une espacement (espace, tabulation, nouvelle ligne, saut de page) Toute la phrase ! w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Même si nous utilisons « ? » pour capturer juste le minimum nécessaire. . . * 0 ou plus du précédent (gourmand!) ? gourmand → le minimum nécessaire \+xt. +? d+\+xt* ( ) regroupement | choix entre les options Bâtir une expression Supposons qu’il y a une référence sans verset : +xt Khuruuj 23+xt* du texte +xt Khuruuj 25. 7+xt* Encore il capture toute la phrase. Donc «. + » est dangereux… utiliser avec caution ! [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) Dans notre cas, les noms de livres sont compris de seulement ces caractères : * 0 ou plus du précédent (gourmand!) ? gourmand → le minimum nécessaire A-Z, a-z, ʼ, - (tiret), et espace ( ) regroupement (Il n’y pas de chiffre, sauf le premier caractère) | choix entre les options Bâtir une expression Donc nous pouvons utiliser cette expression : (d )? [A-Za-zʼ -]+ Ou encore mieux, comme le chiffre doit être 1, 2 ou 3 : ([123] )? [A-Za-zʼ -]+ [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y d un chiffre (digit) s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) * 0 ou plus du précédent (gourmand!) ? gourmand → le minimum nécessaire (\+xt) (([123] )? [A-Za-zʼ -]+) (d+): (d+)(\+xt*) ( ) regroupement Compter les parenthèses gauches pour trouver le groupe | choix entre les options Remplacement Utiliser les parenthèses pour capturer du texte dans la phrase retrouvée : \1 – le marqueur « +xt » [xyz] n’importe quelle de ces lettres \2 – le nom du livre (y compris le chiffre s’il y en a) [x-y] n’importe quelle lettre entre x et y \3 – le chiffre d un chiffre (digit) \4 et \5 – numéro du chapitre et du verset s une espacement (espace, tabulation, nouvelle ligne, saut de page) \6 – le marqueur « +xt* » Remplacer: \1 \2 fasul \4 aaya \5\6 w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin

Expr Sens – ce qui sera trouvé. n’importe quel caractère (mais pas la fin de ligne/paragraphe, par défaut) ? précédent facultatif + 1 ou plus du précédent (gourmand!) # Takwiin 2: 1 or 2 Muluuk 2: 1 -5 * 0 ou plus du précédent (gourmand!) (\+xt ([123] )? [A-Za-zʼ -]+) (d+): (d+(-d+)? \+xt*) ? gourmand → le minimum nécessaire \1 fasul \3 aaya \4 ( ) regroupement | choix entre les options Solution finale? # Takwiin 2 or 1 Muluuk 1– 2 [xyz] n’importe quelle de ces lettres [x-y] n’importe quelle lettre entre x et y (\+xt ([123] )? [A-Za-zʼ -]+) (d+(–d+)? \+xt*) d un chiffre (digit) \1 fasul \3 s une espacement (espace, tabulation, nouvelle ligne, saut de page) w une lettre de création de mot (lettres, chiffres, soulignement « _ » ) \ . (barre oblique). (point)

Astuces pour les expressions régulières q Commencer avec une phrase que vous voulez recher

Astuces pour les expressions régulières q Commencer avec une phrase que vous voulez recher q Essayer de généraliser pour inclure d’autres phrases souhaitées q Tester dans un éditeur de texte q Faire attention avec les expressions gourmandes q Surtout rappeler que «. + » peut dévorer tout !