使用正则表达式mirc获取字符串删除标签的名称?

时间:2016-06-14 09:26:56

标签: regex mirc usernametoken

我试图在mirc usign regex上只捕获用户名的昵称,但我无法抓住这是我想要的用户名

并涉及此正则表达式代码:

/^\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)  }

:[Tag] Xs_user CHAT #test_channel:!hi< - 不工作!
:madhu CHAT #test_channel :!嗨< - 这个有用

所以如果缺口是渠道的运营商,那么只需要用户名就可以比较。

1 个答案:

答案 0 :(得分:1)

再添加两个?以使(:?(\[\w+\])?(\[\s\w+\s\]))(\[\w+\])?(\[\s\w+\s\]?)组可选:

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

请参阅regex demo。如果您使用此正则表达式,则用户名将在第4组中。

要将用户名转换为第1组,请在打开{{?:后添加(,对所有您不感兴趣的分组使用非捕获组1}}:

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

请参阅this regex demo