[PYTHON] Exemple d'utilisation de re.MULTILINE

J'ai écrit la même expression régulière pendant ce temps et je ne comprends pas pourquoi cela n'a pas fonctionné.

remultiline.py


# -*- coding:utf-8 -*-
import re


text = """
[id][integer] PRIMARY KEY,
[column1][varchar](10) NOT NULL UNIQUE,
[column2][datetime] NULL,
[column3][decimal](10,2) NOT NULL
"""


pattern = r'^\[([^\]]+)\]\[([^\]]+)\](\([^\)]+\))?\s.+$'
#Il ne sera pas traité correctement sans l'indicateur MULTILINE.
print "with re.M", re.findall(pattern, text, re.M)
#=> [('id', 'integer', ''),
#    ('column1', 'varchar', '(10)'),
#    ('column2', 'datetime', ''),
#    ('column3', 'decimal', '(10,2)')]

print "without re.M", re.findall(pattern, text)
# => []

Recommended Posts

Exemple d'utilisation de re.MULTILINE
Commande LINUX [édition wc] Exemple d'utilisation
Exemple d'utilisation de Keras: Input (Embedding + Flatten)