Форум сайта python.su
Подскажите что обозначает ноль в квадратных скобках в 20 строке?
и если не затруднит, название литературы в которой про это можно почитать.
1 #!/usr/bin/env python
2
3 from cStringIO import StringIO
4 import re
5
6 vhost_start = re.compile(r'<VirtualHost\s+(.*?)>')
7 vhost_end = re.compile(r'</VirtualHost')
8 docroot_re = re.compile(r'(DocumentRoot\s+)(\S+)')
9
10 def replace_docroot(conf_string, vhost, new_docroot):
11 ‘'’yield new lines of an httpd.conf file where docroot lines matching
12 the specified vhost are replaced with the new_docroot
13 ‘'’
14 conf_file = StringIO(conf_string)
15 in_vhost = False
16 curr_vhost = None
17 for line in conf_file:
18 vhost_start_match = vhost_start.search(line)
19 if vhost_start_match:
20 curr_vhost = vhost_start_match.groups()
21 in_vhost = True
22 if in_vhost and (curr_vhost == vhost):
23 docroot_match = docroot_re.search(line)
24 if docroot_match:
25 sub_line = docroot_re.sub(r'\1%s' % new_docroot, line)
26 line = sub_line
27 vhost_end_match = vhost_end.search(line)
28 if vhost_end_match:
29 in_vhost = False
30 yield line
31
32 if __name__ == ‘__main__’:
33 import sys
34 conf_file = sys.argv
35 vhost = sys.argv
36 docroot = sys.argv
37 conf_string = open(conf_file).read()
38 for line in replace_docroot(conf_string, vhost, docroot):
39 print line,
40
Офлайн
Это первый совпавший элемент. В твоем случае он всего один и может быть, и результат будет строка между “<VirtualHost ” и “>”.
Офлайн
Спасибо большое, а в какой литературе это описано не подскажете?
Офлайн
Офлайн