x = 'a'
x
une variable de type caractèrea
la valeur numérique (encodé):Chaîne de caractère :
s = "bonjour"
s
est une variable"bonjour"
est une séquence de caractères for c in s : print (c)
Affiche :
b o n j o u r
Le programme affiche les caractère 1 par 1, c’est une "chaîne" de plusieurs caractères individuels.
Un texte, au même titre qu'un mot, est une chaîne de caractères (dont la longueur est définie par la longueur de la séquence de caractères qui définissent le textes, ponctuations, espaces et caractères de retour à la ligne compris.
Par définition les caractères séparateurs définissent la taille des espaces entre les mots, ainsi que les passages à la ligne lors de l'affichage du texte.
""
: caractère nul " "
: un espace simple"\t"
: tabulation"\n"
: passage à la ligne ("retour chariot")"\b"
: retour arrière ("backspace")Un document texte pourra être décrit soit comme :
d
: document de taille m
On cherche un algorithme qui retourne toutes les occurrences (position dans le doc) d’un certain terme t
(de taille k<m
)
t = "ami"
d
:
"Les amis de mes amis sont mes amis." ^ ^ ^ 4 16 30
Remarque : Il peut être nécessaire de vérifier que le terme est précédé et suivi par les caractères d’espacement pour éviter de détecter les mots dont le mot recherché est préfixe ou suffixe.
Lecture séquentielle des caractères :
"Les amis de mes amis sont mes amis." ^ position initiale de la tête de lecture
{a,à,ä,b,c,ç,d,e,é,è,ê,ë,...,z,A,B,C,...,Z,1,2,3,...,0}
{!,#,$,%,&,",',...}
remarque : pour extraire la liste des mots présents dans le texte, on doit identifier les débuts et les fins de mots :
De manière plus générale recherche d’expressions peut être effectuée à l’aide d’automates finis.
Lecture séquentielle des caractères :
"Les amis de mes amis sont mes amis." ^ position initiale de la tête de lecture
Représentation graphique :
(source : Luc.Maranget@inria.fr
)
Traduction sous forme d'expression régulière :
(a|b)*ab
Ce motif reconnaît les mots suivants :
ab aab bab aaab abab baab bbab aaaab etc..
Remarques :
re
Exemples:
+4
, -455
, 1024
, 0
Définition : Il s’agit d’une syntaxe “condensée” de description d’automates finis permettant de reconnaître des motifs dans un texte.
En Python, les expressions régulières sont implémentées dans la librairie re
import re d = "Les astronautes de la mission Gemini 8 sont désignés le 20 septembre 1965 : Armstrong est le commandant et David Scott le pilote. Ce dernier est le premier membre du groupe d'astronautes à recevoir une place dans l'équipage titulaire d'une mission spatiale. La mission est lancée le 16 mars 1966. Celle-ci est la plus complexe réalisée jusque-là, avec un rendez-vous et un amarrage du vaisseau Gemini avec l'étage de fusée Agena et une activité extravéhiculaire (EVA) qui constitue la deuxième sortie américaine et la troisième en tout, réalisée par Scott. La mission doit durer 75 heures et le vaisseau doit effectuer 55 orbites. Après le lancement de l'étage-cible Agena à 15 h 00 UTC, la fusée Titan II GLV transportant Armstrong et Scott décolle à 16 h 41 UTC. Une fois en orbite, la poursuite de l'étage Agena par le vaisseau Gemini 8 s'engage." liste_termes = re.findall(r"([1-9]\d*|0)", d)
a
: le caractère a[ab]
: le caractère a ou le caractère b[a-z]
: n'importe quel caractère minuscule entre a et z[^a]
: n'importe quel caractère sauf le caractère a
: le caractère espace\n
: le caractère "passage à la ligne".
: n'importe quel caractère\.
: le caractère "." uniquement[1-9]
: un chiffre entre 1 et 9\w
: n'importe quel caractère alphanumérique \s
: n'importe quel caractère d'espacement\d
: n'importe quel chiffreDef : une expression est définie comme une suite de transition. Le mot est accepté lorsque la suite de transitions est respectée
Exemple :
r"chal[eu]t"
accepte chalet et chalut
r"\w\w\w"
accepte tous les mots de 3 lettres
(artichaud)
(chien|chat)
*
: le caractère ou l'expression précédente répété entre 0 et n fois+
: le caractère ou l'expression précédente répété entre 1 et n fois?
: le caractère ou l'expression précédente répété entre 0 et 1 foisr'\w[\.\w\-]*\w@\w[\.\w\-]*\.\w\w\w?'