2016-04-11 3 views
0

Я пытаюсь найти текстовый файл, который вернет результат, если в этой строке найдено несколько слов. Я не вижу, чтобы это объяснялось в документации, и я пробовал различные циклы без успеха.mIRC Поиск нескольких слов в текстовом файле

То, что я хотел бы сделать что-то похожее на это:

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

или даже что-то вроде этого:

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

Я не знаю RegEx, что хорошо, так что я предполагаю, что это может быть сделано с этим, но я не знаю, как это сделать.

+0

В качестве регулярного выражения это будет что-то вроде '/ (. * (Word1 | word2 | word3). *) {2,} /', не знаю, как это работает в mIRC. – apokryfos

+0

, который не работает в mIRC, но я буду играть и посмотреть, смогу ли я преобразовать это в синтаксис mIRC –

+0

Сколько у вас слов? – rock321987

ответ

0

Документация на самом деле клиента, но я также рекомендую этот сайт: http://en.wikichip.org/wiki/mirc. И с вашей проблемой есть хорошая статья: http://en.wikichip.org/wiki/mirc/text_files

Вся информация взята оттуда. Итак, кредиты викичипу.

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 является идентификатором, который возвращает строку, в которой $read() совпадают. Он используется для начала поиска шаблона на следующей строке. Что в данном случае test.

В приведенном выше коде $readn начато с 0. Мы используем $calc(), чтобы начать с линии 1. Каждое совпадение $read() начнет поиск на следующей строке. Когда больше нет совпадений после указанной линии $read$null - завершение цикла.

Переключатель w используется, чтобы использовать подстановочные знаки в вашем поиске

Переключатель n предотвращает оценки текста, он читает, как будто это был MSL код. В почти КАЖДОМ случае вы должны использовать n-переключатель. Кроме того, если вам это действительно нужно. Неправильное использование идентификатора $ read() без ключа n может оставить ваш сценарий очень уязвимым.

Результат сохраняется в переменной с именем %line, чтобы использовать ее позже, если она вам понадобится.

После этого мы используем noop для выполнения регулярного выражения в соответствии с вашими потребностями. В этом случае вы можете использовать $regml(0), чтобы найти сумму совпадений, указанных в запросе регулярного выражения. Используя if-statement, вы можете увидеть, есть ли два или более совпадений.

Надеюсь, что вы найдете это полезным, если что-то неясно, я попытаюсь объяснить это лучше.

EDIT

@ cp022 Я не могу комментировать, так что я выложу свой комментарий здесь, так как это поможет в любом случае, чтобы прочитать содержимое из текстового файла?

+0

Ничего себе, я плохо читал, прочитал из файла, только прочитал 'check for multiple words'. Удалит мой ответ КАК МОЖНО СКОРЕЕ Спасибо за исправление. – Cp022

Смежные вопросы