2010-08-31 5 views
1

J'ai une question concernant les expressions régulières en Python. Les expressions sont composées de données qui seraient lues à partir d'un serveur, connecté via socket. J'essaie d'utiliser et de lire les caractères génériques dans ces expressions. Exemple: Disons que je cours un serveur de discussion. Lorsqu'un message est reçu, le serveur envoie à tous les clients (JSmith envoie "Bonjour à tous!"). Ma question est, s'il y a plusieurs noms d'utilisateur (pas seulement JSmith), comment puis-je avoir les programmes client lire les données envoyées par le serveur, et au lieu d'écrire "[nom d'utilisateur] envoie" Bonjour tout le monde! " il écrire « [usernamehere]: Bonjour à tous »?Python - Caractères génériques d'expressions régulières à partir de données Socket?

est-il un moyen de stocker des données de caractères génériques d'expression régulières dans les variables

+0

Vous recherchez le terme "(named) capturing group"? – relet

Répondre

1

Si les données sont toujours aussi simple que cela, vous n'avez pas besoin d'utiliser Expresssions réguliers à tout:

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

essions (utilisant des expressions nommées):

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')) 
Questions connexes