Используйте одно выражение для всех из них:
\b[A-Z]?\d[/\d]*\b(?:\s+days)?
См. демонстрацию на regex101.com .
Вам нужно уточнить здесь формат «номера счета».
TG2 имеет несколько преимуществ, что я думаю, важны:
Существуют больше, но я думаю, что также важно знать, что у Django есть некоторые преимущества перед TG2:
Все это означает, что немного легче начать в Django, чем TG2, но я лично думаю добавленное питание и гибкость, которую Вы получаете, стоит того. Но Ваши потребности могут всегда отличаться.
TG2 берет Опоры и изменяет некоторые значения по умолчанию - диспетчеризация объекта вместо Маршрутов и Genshi вместо Мако. Они полагают, что существует только один способ сделать это, таким образом, приложения могут полагаться на тот же API для любого веб-сайта TurboGears.
Django использует ее собственные обработчики для HTTP, маршрутизации, шаблонной обработки и персистентности. У Django также есть звездная документация и установленное сообщество.
Значения по умолчанию TurboGears к лучшим среди аналогов библиотекам, которые, по-видимому, являются Вставкой, объектной диспетчеризацией, Genshi и SqlAlchemy. Эта философия производит лучший всесторонний набор инструментов, но рискуя нестабильностью - потому что это означает выбрасывать назад совместимость, если и когда лучшие библиотеки появляются.
Поскольку Django использует его собственный ORM, он ограничивает Вас, чтобы узнать что ORM для той определенной веб-платформы. Я думаю с помощью веб-платформы с более популярным ORM (как SqlAlchemy, который TG использует), увеличивает возможности возможности трудоустройства. Просто мои 2 цента..
Помимо того, что Nikhil дал в своем ответе, я думаю, что другие незначительные различия то, что Turbogears provdes некоторая поддержка виджетов JavaScript и интеграции с Mochikit.
Принимая во внимание, что Django стойко остается нейтральной платформой JavaScript.
(По крайней мере, это было верно с более старыми версиями Turbogears... это, возможно, изменилось с TG2),
Править: Я просто пробежался через документацию TG2, и посмотрите, что она действительно изменялась. Turbogears теперь использует ToscaWidgets, который может использовать jQuery, ExtJS, Dojo, и т.д. внизу. Это приятно делает это большим количеством платформы нейтральный при тихом обеспечении хороших виджетов JavaScript.
Это кажется мне про для Turbogears, если у Вас нет опыта JavaScript и про для Django, если Вы пишете много специализированного JavaScript.
Один из самых важных вопросов не, какие технические характеристики эта платформа обеспечивает, или та платформа обеспечивает, но ведущая философия проекта с открытым исходным кодом и природа сообщества, поддерживающего его.
У меня нет собаки в этой борьбе самого, но я нашел, что разговор Mark Ramm в DjangoCon 2008 был очень интересен по этому вопросу (Google не приведет ни к какому концу последующего обсуждения, несомненно).
В последний раз я проверил, django имеет очень плохую реализацию данных. И это - огромная слабость в моей книге. orm Django не позволяет мне использовать питание базовой базы данных. Например, я не могу использовать составные первичные ключи, которые важны для хорошего дизайна дб. Это также не поддерживает больше, чем единая база данных, которая не является грандиозным предприятием, пока Вы действительно не нуждаетесь в нем и находите, что не можете сделать этого, не обращаясь к выполнению его вручную. Наконец, если необходимо внести изменения в структуру базы данных благоприятным для команды способом, необходимо попытаться выбрать между рядом сторонних инструментов миграции.
Turbogears, кажется, является больше архитектурно звуковым, прилагая все усилия для интеграции отдельных инструментов, которые являются потрясающими самостоятельно. И потому что TG является большим количеством интегратора, Вы можете выключить части для удовлетворения предпочтениям. Не любить Алхимию SQL? Можно использовать SQLObject. Не любить шаблоны Genshi? Можно использовать Мако или даже django's, хотя Вы точно не застреваете со значением по умолчанию на django также.
Время для недостатков tg2:
Мои 2 цента.
Плюсы.
Минусы. - Админ более простой (пока нет встроенных объектов!) - меньше сторонних приложений - Система "приложений" все еще в разработке. - учитывая его модульность, вам необходимо читать документацию из разных источников (SQLAlchemy, Genshi или Mako, repoze.who, Pylons и т. д.)
Несколько месяцев назад я боролся с тем же вопросом и остановился на Turbogears 2 , и мои рассуждения были просты. « Я новичок в python, я хочу изучить его не только для веб-проектов, но и как замену php для написания небольших помощников »
Что мне не понравилось в Django, мне выглядит как «закрытая площадка». ORM, система шаблонов, сеансы и т. Д. - все они принадлежат Django
С другой стороны, Turbogears 2 использует уже известные открытые платформы и просто склеивает их, точно так же, как Appfuse делает это для Java
с TurboGears 2 Я изучаю SQLAlchemy, который могу использовать позже для небольших сценариев Python или из оболочки Python для решения общих задач.
Основными недостатками являются отсутствие полной документации и сообщений об ошибках.
Иногда вам нужно очень глубоко искать простые решения, кривая обучения крутая, но это окупается в долгосрочной перспективе. Сообщения об ошибках, которые меня очень сбивают с толку (из-за более чем 10 лет разработки Java). Я потерял много часов, пытаясь найти «ошибку кодирования ascii», когда реальная проблема заключалась в том, что модуль не импортировался.
Это мое мнение, просто помните, что я новичок в python и могу ошибаться во многих вещах, изложенных здесь .