Я хочу обработать географические названия, т. Е. / New_york или / new-york и т. Д.
и так как new-york для django-slugify для New-york, то, возможно, мне следует использовать slugifed имена, даже если имена с подчеркиванием выглядят лучше, так как я могу захотеть автоматизировать создание URL с помощью такого алгоритма, как django slugify. Предполагается, что ([A-Za-z]+)
или просто ([\w-]+)
могут работать, но для безопасности я спрашиваю вас, какое регулярное выражение является лучшим выбором в этом случае.
У меня уже есть регулярное выражение, которое обрабатывает числа, соединяющие числа с классом:
('/([0-9]*)',ById)
# извлекает и отображает сущность по идентификатору
Теперь я хочу, чтобы другое регулярное выражение совпадало с именами, например, new_york, так что запрос на
/ new_york обрабатывается соответствующим обработчиком. По сути, отрицание приведенного выше регулярного выражения будет или любой комбинации букв + подчеркивание и, возможно, тире - так как имена географические, и, кажется, я мог бы использовать это регулярное выражение, но я считаю, что это работает только из-за того, что он принимает все:
('/(.*)', ByName)
# Обрабатывать сущности instance / new_york, сущности / sao_paulo и т. Д. С помощью настраиваемого сопоставления для моих соответствующих мест.
Поскольку у меня есть другие обработчики, и я не хочу конфликтующих регулярных выражений, и у меня есть другие обработчики запросов, не могли бы вы порекомендовать, как сформулировать регулярное выражение?
Как это работает, когда выражение подходит для двух регулярных выражений? Который имеет более высокий приоритет? Можете ли вы рассказать мне больше, как я должен научиться писать регулярные выражения и возможные реализации для географического хранилища данных - в качестве сущностей или переменных экземпляра, а также особых проблем, таких как географические местоположения, которые имеют разные имена на разных языках, например, Немецкий по-немецки называется Deutschland, поэтому я также хочу применить переводы, которые я могу сделать с файлами gettext / djang.po.