如果 nick 在文本文件第 x 行

If nick isin text file line x

我的当前代码有问题。

on *:TEXT:*text*:#:{ 
  if ($nick isin $read(test.txt, 1)) {
    msg $chan working.
  }
}

我遇到的问题是,如果昵称 "User1" 在 test.txt 中,并且 "User12" 键入文本,它将检测到它,因为 User1 在 test.txt 中!如果 "User1" 在第 1 行,我怎样才能做到 "User12" 不会说工作。

你的问题是 User1 包含在第一行 User12 而你正在搜索 isin

您可以使用带有 \b 字边界的正则表达式 $+(\b,$nick,\b) 来确保在搜索的 $nick[ 之前或之后没有文本=22=]

on *:TEXT:*text*:#:{ 
  var %line = $read(test.txt, 1)
  if ($regex(%line, $+(\b,$nick,\b))) {
    msg $chan working.
  }
}

另一种方法是使用标识符 $istok...

on *:TEXT:*text*:#:{ 
if ($istok($nick,$read(test.txt,1),32)) {
msg $chan working.
}
}

因为它只会在特定字符串中搜索特定标记... $istok 标识符将与 \b****\b Regex Boundary 进行相同的匹配