$Search[$i][0] и $Search[$i][1] я получаю из файла. Столкнулся с тем, что если $Search[$i][1] вообще нет (пустота), то замены не происходит. Как сделать так, чтобы если $Search[$i][1] нет, то вместо него в выражение поставлялись две кавычки?
Если под "кавычками" имеется в виду пустое (нулевое) значение, то по логике ничего не нужно делать, замена и так будет сделана на пустое значение :wacko:
Что значит нет, это массив, и цикл начнётся только если Ubound($Search)-1 больше чем 0. А раз цикл начался, значит массив содержит такое количество элементов. Может проще привести полный пример, где происходит считывание файла, и далее где используется $Text, и что должно быть изменено в нём.
Так выглядит ini-файл откуда читается массив $Search:
--------------------------------------------------------
Найти:^ +
Заменить на:
--------------------------------------------------------
Найти:^ + - это $Search[$i][0]. Рег. выражение должно найти пробелы в начале строки
Заменить на: - это $Search[$i][1]. Т.к. после двоеточия ничего нет, то $Search[$i][1] равен ничему (массив-то мы проинициализировали ранее). В общем, должна произвестись замена на "ничего", но замены не происходит.
Добавлено:
Сообщение автоматически объединено:
Например, в Perl замена происходит с помощью оператора s///:
s/найти/заменить на/;
Если написать s/^ +/$var1/
и этой $var1 нету, то будет выражение равно s/^ +//, т.е. найденное просто удалится.
В AutoIt, если $var1 нет, то нужно место нее прописать StringRegExpReplace($Text, $Search[$i][0], "") (т.е. две скобки).
Но если сделать так, как предложил Creator, то AutoIt понимает строку как:
StringRegExpReplace($Text, $Search[$i][0], """") - т.е. он эти две скобки берет еще в две скобки, и вместо замены на "ничего" начинает печатать кучу скобок
Добавлено:
Сообщение автоматически объединено:
Я пробовал так:
Код:
for $i = 0 to UBound($Search) - 1
if $Search[$i][1]="" then
StringRegExpReplace($Text, $Search[$i][0], "")
Else
$Text = StringRegExpReplace($Text, $Search[$i][0], $Search[$i][1])
EndIf
еще пробовал смотреть длину $Search[$i][1] - если нулевая, то использовать строку StringRegExpReplace($Text, $Search[$i][0], "")