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

get onlye name of string removing tags using regex mirc?

我试图仅在 mirc usign 正则表达式上捕获用户名的昵称,但我无法捕获这是我想要使用用户名的数据

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

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

这是正则表达式:Regexer

我想获取组 1 中的用户名。

所以任何人都知道如何捕捉这种情况?

if ($regex(info,-,/^\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 CHAT #test_channel :!hi <- 不工作!
:madhu CHAT #test_channel :!hi <- 这有效

所以只需要取用户名就可以比较昵称是否是频道的运营商。

再添加两个 ? 使 (:?(\[\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