2016-06-14 8 views
1

私はのmIRC usign正規表現上のユーザ名の唯一のニックネームをキャッチしようとしているが、私はこれをキャッチカントは、私は、ユーザー名regex mircを使ってタグを削除する文字列の名前だけを取得しますか?

を取りたいデータであり、中には、この正規表現コードを伴う:

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

をここでregexerである:Regexer

私はすべてのボディは、この状況をキャッチするためにアイデアを持っている

グループ1でのユーザ名を取得したいですか?

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) } 

:[タグ] Xs_userチャット#test_channel:HI < - 動作しません!
:madhuチャット#テストチャンネル:!hi < - これは

ですので、ニックネームがチャンネルのオペレータであるかどうかを比較する必要があります。

+0

追加を参照してください。 ?\ s?(\ w +) '](https(\ [\ w + \ s \]))? ://regex101.com/r/tJ1nM8/1)。それはあなたのためにうまくいくのですか?あなたは得ようとしているアウトプットについて言及していません。この正規表現を使用すると、ユーザー名はグループ4になります。 –

+0

ありがとう、私はグループ1のユーザー名を取得したいと思いますが、この可能性がありますか? –

+0

はい、あなたの答えを実装しようとしましょう!事前に感謝しています –

答えて

1

(:?(\[\w+\])?(\[\s\w+\s\]))(\[\w+\])?(\[\s\w+\s\]?)グループをオプションにする?さらに2つを追加します。

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

regex demoを参照してください。この正規表現を使用する場合、ユーザー名はグループ4になります。

あなたが(を開いた後?:を追加してに興味を持っていませんすべてのグループのために非キャプチャグループを使用し、グループ1にユーザー名を取得するには、次の

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

this regex demo

関連する問題