PDA

Показать полную графическую версию : [решено] Заменить текст строки с помощью регулярного выражения, можно ли?


andr_mozg
04-05-2011, 16:32
добрый день,
есть строка вида: 20110416085104
как преобразовать в строку вида 08:51:04 16/04/2011
так и неподружился с регулярными выражениями :(

если с помощью регулярного выражения неполучается.. как можно сделать максимально просто...
спасиб

madmasles
04-05-2011, 16:51
andr_mozg,
Попробуйте так:$sString = '20110416085104'
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) StringRegExp (http://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm)($sString, '^(\d{14})$') Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sNewString = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($sString, '^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$', '$4:$5:$6 $3/$2/$1')
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(64, 'Info', $sNewString)
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(16, 'Error', 'Строка неправильная')
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

kaster
04-05-2011, 16:51
$s = '20110416085104'
$Year = StringLeft($s, 4)
$Month = StringMid($s, 5, 2)
$Day = StringMid($s, 7, 2)
$HH = StringMid($s, 9, 2)
$MM = StringMid($s, 11, 2)
$SS = StringRight($s, 2)
$sNew = $HH & ':' & $MM & ':' & $SS & ' ' & $Day & '/' & $Month & '/' & $Year
MsgBox(0, '', $sNew)

madmasles
04-05-2011, 17:01
$sString = '20110416085104'
$aString = StringRegExp (http://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm)($sString, '\d{2}', 3)
$Year = $aString[0] & $aString[1]
$Month = $aString[2]
$Day = $aString[3]
$HH = $aString[4]
$MM = $aString[5]
$SS = $aString[6]
$sNewString = $HH & ':' & $MM & ':' & $SS & ' ' & $Day & '/' & $Month & '/' & $Year
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(64, 'Info', $sNewString):)

andr_mozg
04-05-2011, 17:40
спасибо.. :)




© OSzone.net 2001-2012