Python - Подстановочные знаки регулярных выражений из данных Socket? - PullRequest
1 голос
/ 31 августа 2010

У меня есть вопрос по поводу регулярных выражений в Python.Выражения состоят из данных, которые будут считаны с сервера, подключенного через сокет.Я пытаюсь использовать и читать символы подстановки в этих выражениях.Пример: допустим, я запускаю сервер чата.Когда сообщение получено, сервер отправляет всем клиентам (JSmith отправляет «Привет всем!»).

Мой вопрос: если есть несколько имен пользователей (не только JSmith), как я могу получить клиентские программычитать данные, отправленные сервером, и вместо записи «[имя пользователя] отправляет« Привет всем! », нужно написать« [имя пользователя здесь]: Привет всем! »?

есть ли способ хранения данных изПодстановочные знаки регулярного выражения в переменные?

1 Ответ

1 голос
/ 01 сентября 2010

Если данные всегда так просты, вам вообще не нужно использовать регулярные выражения:

line = 'JSmith sends "Hello everyone!"'
user, data = line.split(' sends ', 1)
# remove the quotes
data = data[1:-1]
print "%s: %s" % (user, data)

С регулярными выражениями (используя именованные выражения):

import re
line = 'JSmith sends "Hello everyone!"'
chatre = re.compile('^(?P<user>\S+) sends "(?P<data>.*)"$')
m = chatre.match(line)
if m:
    print "%s: %s" % (m.group('user'), m.group('data'))
...