Bonjour à tous !
Je suis confronté à un problème face à mon code python, voyez plutôt :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | italic = r"(?P<i>(_(.+?)_))" # flags = re.S bold = r"(?P<b>(\*(.+?)\*))" # flags = re.S crossed = r"(?P<crossed>(~~(.+?)~~))" # flags = re.S h1 = r"(?P<h1>(?<!#)#(?!#)(.*))" h2 = r"(?P<h2>(?<!#)##(?!#)(.*))" h3 = r"(?P<h3>(?<!#)###(?!#)(.*))" h4 = r"(?P<h4>(?<!#)####(?!#)(.*))" h5 = r"(?P<h5>(?<!#)#####(?!#)(.*))" h6 = r"(?P<h6>(?<!#)######(?!#)(.*))" link = r"(?P<link>(\(.+?\)\[.+?]))" code = r"(?P<code>(```(.+?)```))" # flags = re.S quote = r"(?P<quote>(>>(.+?)<<(\(Source:(.+)\))?))" # flags = re.S center = r"(?P<center>(-->(.+?)<--))" # flags = re.S right = r"(?P<right>(-->(.+?)-->))" # flags = re.S hr = r"(?P<hr>(\n(---*|===*)\n))" exponent = r"(?P<exponent>(\^(.+?)\^))" index = r"(?P<index>(~(.+?)~))" new_line = r"(?P<newline>( +\n))" new_section = r"(?P<newsection>(\n\n+))" comment = r"(?P<comment>(<!--(.+?)-->))" # flags = re.S footmark = r"(?P<footmark>(\[\^[0-9]+:.+?\]))" variable = r"(?P<variable>(\$_[A-Z]{2,}\(.+?\)))" regexs = [bold, center, code, comment, crossed, exponent, footmark, h1, h2, h3, h4, h5, h6, hr, index, italic, link, new_line, new_section, quote, right, variable] regex_master = re.compile("|".join(regexs)) |
Et quand je fais
1 2 | print("Regexs : ", regexs) print("Regex_master : ", regex_master) |
Elle me renvoie :
1 2 | Regexs : ['(?P<b>(\\*\\*(.+?)\\*\\*))', '(?P<center>(-->(.+?)<--))', '(?P<code>(```(.+?)```))', '(?P<comment>(<!--(.+?)-->))', '(?P<crossed>(~~(.+?)~~))', '(?P<exponent>(\\^(.+?)\\^))', '(?P<footmark>(\\[\\^[0-9]+:.+?\\]))', '(?P<h1>(?<!#)#(?!#)(.*))', '(?P<h2>(?<!#)##(?!#)(.*))', '(?P<h3>(?<!#)###(?!#)(.*))', '(?P<h4>(?<!#)####(?!#)(.*))', '(?P<h5>(?<!#)#####(?!#)(.*))', '(?P<h6>(?<!#)######(?!#)(.*))', '(?P<hr>(\\n(---*|===*)\\n))', '(?P<index>(~(.+?)~))', '(?P<i>(_(.+?)_))', '(?P<link>(\\(.+?\\)\\[.+?]))', '(?P<newline>( +\\n))', '(?P<newsection>(\\n\\n+))', '(?P<quote>(>>(.+?)<<(\\(Source:(.+)\\))?))', '(?P<right>(-->(.+?)-->))', '(?P<variable>(\\$_[A-Z]{2,}\\(.+?\\)))'] Regex_master : re.compile('(?P<b>(\\*\\*(.+?)\\*\\*))|(?P<center>(-->(.+?)<--))|(?P<code>(```(.+?)```))|(?P<comment>(<!--(.+?)-->))|(?P<crossed>(~~(.+?)~~))|(?P<exponent>(\\^(.+?)\\^))|(?P<footmark>(\\[\\^[0-9]+:.+?\\]))|(?P<h) |
(Bon d'accord c'est vraiment imbuvable ) La fonction compile() ne compile pas toute mes expressions… En regardant dans la doc python, il n'est marqué nul part qu'elle est limitée en nombre de caractères… Est-ce moi qui l'utilise mal ?
Merci de votre aide
+0
-0