2016-06-14 2 views
1

je suis en train d'attraper que le surnom d'un noms d'utilisateur sur mIRC usign regex, mais je ne peux pas attraper ce sont les données que je veux prendre le nom d'utilisateurobtenir seulement le nom de chaîne en supprimant les tags en utilisant regex mirc?

et impliquent ce code regex:

/^\x3a(:?(\[\w+\])?(\[\s\w+\s\]?))\s?(\w+)/i 

Voici le regexer: Regexer

Je voudrais obtenir le nom d'utilisateur ainsi, tout dans le groupe 1.

ont une idée d'attraper cette situation?

if ($regex(info,$1-,/^\x3a(?::?(?:\[\w+\])?(?:\[\s\w+\s\]?)?)?\s?(\w+) (CHAT) (#\S+) \x3a([\x21])(hi|test)(|$)/i)) { 
echo * NickName: $regml(info,1) 
echo * Method: $regml(info,2) 
echo * Channel: $regml(info,3) 
echo * Symbol: $regml(info,4) 
echo * Trigger: $regml(info,5) } 

: [Tag] Xs_user CHAT #test_channel: Salut < - fonctionne pas!
: Madhu CHAT #test_channel: salut < - cela fonctionne

donc besoin de ne prendre que nom d'utilisateur à comparer peut si nick est l'opérateur du canal.

+0

Ajouter deux autres '?': ['^ \ x3a (:? (\ [\ w + \])? (\ [\ s \ w + \ s \]?)?)? \ s? (\ w +)'] (https : //regex101.com/r/tJ1nM8/1). Est-ce que ça marche pour vous comme ça? Vous n'avez pas mentionné le résultat que vous essayez d'obtenir. Le nom d'utilisateur sera dans le groupe 4 si vous utilisez cette expression régulière. –

+0

merci, je voudrais obtenir le nom d'utilisateur dans le groupe 1, pourrait-il être possible? –

+0

oui laissez-moi essayer de mettre en œuvre votre réponse! merci d'avance –

Répondre

1

Ajouter deux autres ? pour faire (:?(\[\w+\])?(\[\s\w+\s\])) et (\[\w+\])?(\[\s\w+\s\]?) groupes en option:

^\x3a(:?(\[\w+\])?(\[\s\w+\s\]?)?)?\s?(\w+) 
           ^^ 

Voir la regex demo. Le nom d'utilisateur sera dans le groupe 4 si vous utilisez cette expression régulière.

Pour obtenir le nom d'utilisateur dans le groupe 1, utilisez non-capture groupes pour tous les groupes que vous n'êtes pas intéressé par l'ajout ?: après l'ouverture (:

^\x3a(?::?(?:\[\w+\])?(?:\[\s\w+\s\]?)?)?\s?(\w+) 
     ^^ ^^   ^^ 

Voir this regex demo