2016-06-25 2 views
-1

Я новичок в регулярных выражений и некоторые трудности сейчас: я имел регулярное выражениеDjango URL регулярное выражение

url(r'^users/\w+/$', views.user) 

Сейчас я хочу, чтобы изменить буквенно-цифровые «ш +» в алфавитно-цифровой плюс точка голец.

Я попытался

url(r'^users/([a-zA-Z0-9\.])/$', views.user) 

и он не работает. Я получаю 404 страницы. Может ли кто-нибудь помочь мне с этим, пожалуйста?

+0

Ваше регулярное выражение соответствует только одному * алфавитно-цифровому символу плюс точка ... См. Например. https://regex101.com/r/rV0yM0/1 – jonrsharpe

+0

Что означает «не работает»? что это соответствует/не соответствует тому, что вы хотите? – Sayse

ответ

0

Написать это:

Мы не используем \, чтобы избежать . внутри класса символов. Поэтому, чтобы соответствовать символу внутри класса символов, мы не избегаем его. Пример: [.]

-1
url(r'^users/([a-zA-Z0-9\.]+)/$', views.user) 

Добавить +.

+0

'[\.]' Внутри символьного класса будет соответствовать либо \ или '.' – shiva

+2

@shiva Нет соответствия для \: https://regex101.com/r/sQ7gB2/1 –

+0

@shiva Обратная косая черта сбегает следующий символ, независимо от того, нужен ли этот персонаж для экранирования. В этом случае оба '[.]' И '[\.]' Будут соответствовать только литералу '.'. Единственный способ сопоставить буквальную обратную косую черту - это экранирование обратной косой черты, т. Е. '[\\.]'. – knbk

Смежные вопросы