[решено] Расширенная замена StringRegExpReplace

Ответить
Аватара пользователя
ALFERIUS

[решено] Расширенная замена StringRegExpReplace

Сообщение ALFERIUS »

Здравствуйте,



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

Т.е. в поле замена мне нужно подставить "искомый текст".



Спасибо.
Аватара пользователя
ALFERIUS

Re: [решено] Расширенная замена StringRegExpReplace

Сообщение ALFERIUS »

ALFERIUS, слишком туманно, можно конкретный пример?
Аватара пользователя
amel27

Re: [решено] Расширенная замена StringRegExpReplace

Сообщение amel27 »

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



Оригинальный файл выложить не могу. Придумывать долго.

Искал аналог замены как в линуксовом sed

если находит в тексте (шаблон поиска 1)(шаблон поиска 2)(шаблон поиска 3) то заменить на (то что нашли в первом шаблоне)(то что нашли во третьем шаблоне)



Спасибо.
Аватара пользователя
Iska

Re: [решено] Расширенная замена StringRegExpReplace

Сообщение Iska »

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

Re: [решено] Расширенная замена StringRegExpReplace

Сообщение ALFERIUS »

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



есть текст:

...

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

Re: [решено] Расширенная замена StringRegExpReplace

Сообщение amel27 »

Цитата ALFERIUS:



апостроф, возврат каретки, любое число символов, ОК:
[решено] Расширенная замена StringRegExpReplace






Код:

Код: Выделить всё

$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)
Ответить

Вернуться в «AutoIt»