Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Пытаюсь сделать функцию для массовой замены по тексту используя флаг “Whole word only” (только слово целиком) - Но всё что у меня получилось, так это замена нужного текста + тех символов которые считаются как разделителями между словами (Таб, пробел, перевод строки, возврат каретки, начало строки, и конец строки):

Код: Выделить весь код
$Ret = _StringReplace_WholeWord(@TAB & "test" & @CRLF & "_test_" & @CRLF, "test", "000", 0)
ConsoleWrite($Ret) ;@TAB'а уже нету :(

Func _StringReplace_WholeWord($String, $WhatToFind, $Replace, $MatchCaseParam=0)
    Local $CaseSenceStr = '(?i)'
    If $MatchCaseParam = 1 Then $CaseSenceStr = ''

        Local $RetVal = StringRegExpReplace($String, $CaseSenceStr & GetRegExpPattern($WhatToFind), $Replace)
    Return SetExtended(@extended, $RetVal)
EndFunc

Func GetRegExpPattern($Var)
    Return '\t' & $Var & '\z|\A' & _
        $Var & '\t|\t' & $Var & '\t|\t' & $Var & '\s|\s' & _
        $Var & '\t|\A' & $Var & '\s|\s' & $Var & '\z|\s' & _
        $Var & '\s|\n' & $Var & '\s|\n' & $Var & '\t|\n' & _
        $Var & '\r|\n' & $Var & '\z|\A' & $Var & '\n|\A' & _
        $Var & '\r|\t' & $Var & '\n|\t' & $Var & '\r|\r' & _
        $Var & '\s|\r' & $Var & '\t|\r' & $Var & '\n|\r' & _
        $Var & '\z|\n' & $Var & '\r|\A' & $Var & '\z'
EndFunc
Как можно построить подобную функцию?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 10:40, 12-08-2007 | #288