Что нового

[RegExp] Поиск и замена в word по регулярному выражению

AlexVong

Новичок
Сообщения
112
Репутация
1
Подскажите можно в word заменить текст по регулярному выражению?
Например:
44526301.08.201 1110....
58555410.09.201 10001.....
45455511.10.201 121213...
после замены
445263 01.08.2012 1110....
585554 10.09.2012 10001.....
454555 11.10.2012 121213...
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Код:
$test=StringRegExpReplace($test, '(\d{6})(\d\d\.\d\d\.\d{3})(\40\d+)', '$1 ${2}2$3')
 
Автор
A

AlexVong

Новичок
Сообщения
112
Репутация
1
AZJIO
В WORD не хочет работать, может я делаю что то не так?
Код:
StringRegExpReplace($oDoc, '(\d{6})(\d\d\.\d\d\.\d{3})(\40\d+)', '$1 ${2}2$3')

Использую _WordDocFindReplace, но он делает только замену 201 на 2012, а вот как вставить пробел перед датой?
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Код:
$sText= _
'44526301.08.201 1110....' & @CRLF & _
'58555410.09.201 10001.....' & @CRLF & _
'45455511.10.201 121213...'

$demanded= _
'445263 01.08.2012 1110....' & @CRLF & _
'585554 10.09.2012 10001.....' & @CRLF & _
'454555 11.10.2012 121213...'

$sText=StringRegExpReplace($sText, '(\d{6})(\d\d\.\d\d\.\d{3})(\40\d+.*)', '$1 ${2}2$3')


If $sText==$demanded Then MsgBox(0, 'Да совпадает', $sText)
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
или так:
Код:
$sText= _
'44526301.08.201 1110....' & @CRLF & _
'58555410.09.201 10001.....' & @CRLF & _
'45455511.10.201 121213...'

$sTest = StringRegExpReplace($sText,'(?m)(?<=^\d{6})[\d.]+(?<=201)',' $0${2}2')
ConsoleWrite($sTest & @LF)
 
Автор
A

AlexVong

Новичок
Сообщения
112
Репутация
1
C текстовыми файлами отрабатывают на ура, но как их применить к файлу WORD?
Пробую так:
Код:
$oWordApp = _WordCreate (@ScriptDir & "1.doc")
$oDoc = _WordDocGetCollection($oWordApp, 0)
StringRegExpReplace($oDoc, '(\d{6})(\d\d\.\d\d\.\d{3})(\40\d+.*)', '$1 ${2}2$3')

Но ничего не происходит...
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Потому что _WordDocGetCollection возвращает объект
 
Автор
A

AlexVong

Новичок
Сообщения
112
Репутация
1
Всем спасибо!!! Проблема решена...
 
Верх