У меня есть страница, разработанная в Django, которая имеет собственную поисковую систему. Мне нужна помощь в построении регулярного выражения, которое будет фильтровать только действительные запросы, которые состоят только из букв латинского алфавита (как верхнего, так и нижнего регистра) и символов * и? , может ли кто-нибудь помочь?Регулярное выражение для поисковых запросов
EDIT: Я пытался что-то вроде этого:
query_re = re.compile(r'^\w*[\*\?]*$', re.UNICODE)
if not query_re.match(self.cleaned_data['query']):
raise forms.ValidationError(_('Illegal character'))
но также допускает некоторые недопустимые символы из различных алфавитов и не позволит * somest ИНГ * запросы?.
Как о представлении одного из ваших подходов? Или некоторые фрагменты кода, где вы что-то пробовали? Это было бы полезно ... –
Поместите \ w внутри [] и используйте re.LOCALE вместо re.UNICODE. Тогда у вас есть по существу то же самое регулярное выражение, которое я дал в моем ответе ниже. –
Когда я использую re.LOCALE, польские буквы недействительны, но когда я использую re.UNICODE, они действительны, но буквы из других алфавитов также являются допустимыми, а также скобки '[]' и, возможно, больше. – Lhiash