mIRC 在文本文件中搜索多个单词

mIRC Search for multiple words in text file

我正在尝试搜索一个文本文件,如果在该行中找到多个单词,该文件将 return 一个结果。我没有在文档中看到这个解释,我尝试了各种循环但没有成功。

我想做的是类似这样的事情:

$read(name.txt, s, word1|word2|word3)

甚至是这样的:

$read(name.txt, w, word1*|*word2*|*word3)

我不太了解 RegEx,所以我假设这可以用它来完成,但我不知道该怎么做。

客户端中的文档很好,但我也推荐这个站点:http://en.wikichip.org/wiki/mirc. And with your problem there is a nice article : http://en.wikichip.org/wiki/mirc/text_files

所有信息都取自那里。所以归功于 wikichip。

alias testForString {
  while ($read(file.txt, nw, *test*, $calc($readn + 1))) {
    var %line = $v1
    ; you can add your own words in the regex, seperate them with a pipe (|)
    noop $regex(%line,/(word1|word2|word3|test)/))
    echo -a Amount of results: $regml(0)
  }
}

$readn 是 return 与 $read() 匹配的行的标识符。它用于在下一行开始搜索模式。在这种情况下是 test

在上面的代码中,$readn 从 0 开始。我们使用 $calc() 从第 1 行开始。每个匹配项 $read() 都会从下一行开始搜索。当指定的行之后没有更多匹配时 $read 将 return $null - 终止循环。

w 开关用于在您的搜索中使用通配符

n 开关阻止评估它读取的文本,就好像它是 mSL 代码一样。在几乎 EVERY 的情况下,您必须使用 n 开关。除非你真的需要它。在没有 'n' 开关的情况下不正确地使用 $read() 标识符可能会使您的脚本极易受到攻击。

结果存储在名为 %line 的变量中,以备日后需要时使用。

之后我们使用 noop 来执行正则表达式来满足您的需求。在这种情况下,您可以使用 $regml(0) 来查找在正则表达式搜索中指定的 数量 的匹配项。使用 if 语句,您可以查看是否有两个或更多匹配项。

希望对您有所帮助,如果有任何不清楚的地方,我会尽力解释得更好。

编辑

@cp022 我无法发表评论,所以我会 post 在这里发表评论,那么这对从文本文件中读取内容有何帮助?