J'ai une page conçue dans Django qui a son propre moteur de recherche. Ce dont j'ai besoin d'aide est la construction de regex qui filtrera seulement les requêtes valides, qui sont composées seulement de lettres d'alphabet polonais (majuscules et minuscules) et de symboles * et? , quelqu'un peut-il être utile?Regex pour les requêtes de recherche
EDIT: Je essayé quelque chose comme ça:
query_re = re.compile(r'^\w*[\*\?]*$', re.UNICODE)
if not query_re.match(self.cleaned_data['query']):
raise forms.ValidationError(_('Illegal character'))
mais elle permet aussi des caractères non valides de différents alphabets et permettra pas * somest * ing questions?.
Que diriez-vous présenter un de vos démarches? Ou des extraits de code où vous avez essayé quelque chose? Cela serait utile ... –
Mettez le \ w dans le [], et utilisez re.LOCALE au lieu de re.UNICODE. Ensuite, vous avez essentiellement le même regex que j'ai donné dans ma réponse ci-dessous. –
Lorsque j'utilise re.LOCALE, les lettres polonaises ne sont pas valides, mais lorsque j'utilise re.UNICODE, elles sont valides, mais les lettres d'autres alphabets sont également valides, ainsi que les crochets [] et probablement plus. – Lhiash