Bonjour
Je me suis plongé dans les expressions régulières. Je pense avoir compris quelques syntaxes.
Par contre, faut-il prévoir une fonction pour programmer l'occurence "mot1 et mot2" en tenant compte du <<et>> mais en ne tenant pas compte de l'ordre des mots.
Par exemple, ci dessous:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
import glob 
import os
import re
# la chaine s ne contient pas "début" "fin" 
s="je suis Pour l'instant \n moyennEment. TranQuILLe AvEC  les eXpressioNS \ REGULIERES. "
s=s.lower()
print("Au moins un mot")
print("   0 mot")
print(re.search(r"(\")|(début)",s,re.S)) # False
print("   Un mot")
print(re.search(r"(\.)|(début)",s,re.S)) #True
print("   2 mots")
print(re.search(r"(suis)|(instant)",s,re.S)) #True
print("mot1 et mot2")
print("   dans l'ordre")
print(re.search(r"(suis).*(tranquil)",s,re.S)) #True
print("   dans le désordre")
print(re.search(r"(instant).*(suis)",s,re.S)) #False alors que je souhaiterais que çà soit True
Dans le même régistre, existe-t-il une fonction prédéfinie (ou faut-il la créer) pour exclure la chaine si elle contient un mot; par exemple pour tester
Chaine contient mot 1 et mot 2 et pas mot 3

merci pour vos réponses.

Gabriel Ruyneau