Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Расширенная замена StringRegExpReplace (http://forum.oszone.net/showthread.php?t=149183)

ALFERIUS 28-08-2009 17:07 1205649

Расширенная замена StringRegExpReplace
 
Здравствуйте,

Интересует вопрос, есть ли возможность использовать шаблоны не только при поиске, но и при подстановке?
Т.е. в поле замена мне нужно подставить "искомый текст".

Спасибо.

amel27 28-08-2009 17:25 1205659

ALFERIUS, слишком туманно, можно конкретный пример?

ALFERIUS 28-08-2009 17:43 1205672

Извиняюсь, решил другим способом.

Оригинальный файл выложить не могу. Придумывать долго.
Искал аналог замены как в линуксовом sed
если находит в тексте (шаблон поиска 1)(шаблон поиска 2)(шаблон поиска 3) то заменить на (то что нашли в первом шаблоне)(то что нашли во третьем шаблоне)

Спасибо.

Iska 28-08-2009 19:04 1205744

ALFERIUS, это же есть. Смотрите в:
Цитата:

Цитата Function Reference, StringRegExp

( ... ) : Group. The elements in the group are treated in order and can be repeated together. e.g. (ab)+ will match "ab" or "abab", but not "aba". A group will also store the text matched for use in back-references and in the array returned by the function, depending on flag value.

и в:
Цитата:

Цитата Function Reference, StringRegExpReplace

replace: The text to replace the regular expression matching text with. To insert matched group text, \0 - \9 (or $0 - $9) can be used as back-references.


ALFERIUS 03-09-2009 10:55 1210271

Подскажите пожалуйста,

есть текст:
...
00:00:13 AT&O11*D/345634563456/,3E,,,'354635ВВ'
00:00:13 OK:49,0,11
...

Ищу
$text=StringRegExpReplace($sFile,("'")&(@CRLF)&(.*"OK:".*), $1&$3 )

т.е. апостроф, возврат каретки, любое число символов, ОК:, люьое число символов хочу заменить на искомый текст без возврата каретки.

Не могу победить ошибку
$text=StringRegExpReplace($sFile,("'")&(@CRLF)&(.*"OK:"), $1&$3 )
$text=StringRegExpReplace($sFile,("'")&(@CRLF)&(.*"OK:"), $1&$3 ^ ERROR

на что он ругается?
Или как можно решить ситуацию по другому?
Спасибо.

Со скобкой решил,
Теперь ругается на замену
$text=StringRegExpReplace($sFile,("' ")&(@CRLF)&(.*"OK:".*), $1&$3)
$text=StringRegExpReplace($sFile,("' ")&(@CRLF)&(.*"OK:".*), ^ ERROR

amel27 03-09-2009 11:11 1210283

Цитата:

Цитата ALFERIUS
апостроф, возврат каретки, любое число символов, ОК: »

Код:

$sFile  = "00:00:13 AT&O11*D/345634563456/,3E,,,'354635ВВ'"&@CRLF
$sFile &= "00:00:13 OK:49,0,11"

$sText = StringRegExpReplace($sFile, "'\r\n(.*?OK:)", "'$1")
ConsoleWrite($sText &@CRLF)



Время: 17:31.

Время: 17:31.
© OSzone.net 2001-