2016-06-14 46 views
1

我試圖趕上僅在mIRC的usign正則表達式一個用戶名的綽號,但我不能趕上這就是我想要獲取用戶名獲取使用正則表達式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:!嗨< - 不工作!
:madhu CHAT #test_channel:!hi < - This works

所以需要用戶名才能比較,如果nick是通道運營商的話。

+0

添加還有兩個'?':['^ \ x3a(:?(\ [\ w + \])?(\ [\ s \ w + \ s \]?)?)?\ s?(\ w +)'](https ://regex101.com/r/tJ1nM8/1)。它是否適合你?你沒有提到你試圖得到什麼輸出。如果您使用此正則表達式,用戶名將在第4組中。 –

+0

謝謝,我想獲得組1中的用戶名,可能是這樣嗎? –

+0

是的,讓我試着實現你的答案!在此先感謝 –

回答

1

再添加兩個?,使(:?(\[\w+\])?(\[\s\w+\s\]))(\[\w+\])?(\[\s\w+\s\]?)組可選:

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

regex demo。如果您使用此正則表達式,用戶名將位於第4組中。

要獲得用戶名到第1組,使用非捕獲組的所有分組,您有沒有興趣加入?:打開(後:

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

this regex demo