Вы могли использовать это в качестве грубого "ruleset":
ДА , используйте постоянные соединения, если:
НИКАКОЙ , не используйте постоянные соединения, если:
Используя постоянные соединения значительно быстрее, особенно если Вы получаете доступ к базе данных по сети. Это не имеет такого значения, если база данных работает на той же машине, но это все еще немного быстрее. Однако - поскольку имя говорит - соединение является персистентным, т.е. это остается открытым, даже если это не используется.
проблема с то есть, что в "конфигурации по умолчанию", MySQL только позволяет 1 000 параллельных "открытых каналов". После этого новым соединениям отказывают (Можно настроить эту установку). Таким образом, если Вы имеете - говорят - 20 веб-серверов с каждым 100 Клиентов на них, и у каждых из них есть всего доступ на одну страницу в час, простая математика покажет Вам необходимость в параллельных соединениях 2000 года с базой данных. Это не будет работать.
Следовательно: Только используйте его для приложений с большим количеством запросов.
См .: Объекты сопоставления регулярных выражений Python
>>> import re
>>> p = re.compile("lalala(I want this part)lalala")
>>> p.match("lalalaI want this partlalala").group(1)
'I want this part'
Если вы хотите получить детали по имени, вы также можете сделать это:
>>> m = re.match(r"(?P<first_name>\w+) (?P<last_name>\w+)", "Malcom Reynolds")
>>> m.groupdict()
{'first_name': 'Malcom', 'last_name': 'Reynolds'}
Пример был взят из re docs
import re
astr = 'lalalabeeplalala'
match = re.search('lalala(.*)lalala', astr)
whatIWant = match.group(1) if match else None
print(whatIWant)
Небольшое примечание: в Perl, когда вы пишете
$string =~ m/lalala(.*)lalala/;
, регулярное выражение может соответствовать где угодно в строке. Эквивалент достигается с помощью функции re.search ()
, а не функции re.match ()
, которая требует, чтобы сопоставление с образцом начиналось с начала строки.
import re
data = "some input data"
m = re.search("some (input) data", data)
if m: # "if match was successful" / "if matched"
print m.group(1)
Дополнительные сведения см. В документации .
import re
match = re.match('lalala(I want this part)lalala', 'lalalaI want this partlalala')
print match.group(1)
в регулярном выражении нет необходимости. думайте просто.
>>> "lalala(I want this part)lalala".split("lalala")
['', '(I want this part)', '']
>>> "lalala(I want this part)lalala".split("lalala")[1]
'(I want this part)'
>>>