|
|
|
| Здравствуйте!
Не могу составить регулярку:
$pattern="#([\\$A-Z]){5}(.?)#sU";
preg_match_all($pattern,$str,$out);
echo "<pre>";
print_r($out);
|
текст такой:
$HCHDT,246.4,T*2D
$PFEC,GPatt,,,*66
$PAMTS,MET,991,24.5,60.3,,,,0.1,0.2,+89.7,+88.9*10
$WIMDA,29.2642,I,0.9910,B,24.5,C,,,60.3,,16.2,C,,,,,,,,*78
$WIMWD,,,,,,,,*40
$WIMWV,0.1,R,0.3,N,A*21
$WIMWV,,T,,,V*7C
$TIROT,,V*02
$WIVWR,0.1,R,0.3,N,0.2,M,0.6,K*51
$WIVWT,,,,,,,,*4B
$WIXDR,C,,C,WCHR,C,,C,WCHT*56
$YXXDR,C,,C,WCHR,C,,C,WCHT,C,,C,HINX,P,0.9910,B,STNP*4A
$YXXDR*4F
|
| |
|
|
|
|
|
|
|
для: vadimka
(17.12.2010 в 16:05)
| | результат чем не устраивает? | |
|
|
|
|
|
|
|
для: Trianon
(17.12.2010 в 18:54)
| | я неправильно написал:
мне нужно этот блок текста, массив как то отловить:
$GPDTM,W84,,0000.0000,N,00000.0000,E,0.0,W84*5F
$GPGGA,,,,,,0,,,,,,,,*66
$GPGLL,,,,,,V,N*64
$GPGSA,M,1,,,,,,,,,,,,,,,*12
$GPGSV,1,1,0*49
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPZDA,,,,*48
$HCHDG,261.6,0.0,E,14.9,W*6F
$HCHDT,246.7,T*2E
$PAMTS,MET,987,14.3,91.6,,,,122.9,0.3,+85.1,+87.9*14
$PAMTS,MET,987,14.3,92.1,,,,121.9,0.3,+85.1,+87.9*13
$PAMTS,MET,987,14.3,92.4,,,,90.3,0.2,+85.1,+87.9*26
$PAMTS,MET,987,14.4,91.5,,,,119.9,0.3,+85.1,+87.9*18
$PAMTS,MET,987,14.4,91.9,,,,90.3,0.3,+85.1,+87.9*2E
$PAMTS,MET,987,14.4,92.1,,,,115.1,0.4,+85.1,+87.9*1C
$PAMTS,MET,987,14.4,92.4,,,,116.6,0.2,+85.1,+87.9*1B
$PAMTS,MET,987,14.4,92.6,,,,90.3,0.1,+85.1,+87.9*20
$PAMTS,MET,987,14.5,91.0,,,,136.8,0.3,+85.1,+87.9*10
$PFEC,GPatt,,,*66
$TIROT,,V*02
$WIMDA,29.1491,I,0.9871,B,14.3,C,,,91.6,,12.9,C,,,,,,,,*70
$WIMDA,29.1491,I,0.9871,B,14.4,C,,,91.9,,13.0,C,,,,,,,,*70
$WIMDA,29.1520,I,0.9872,B,14.3,C,,,92.1,,13.0,C,,,,,,,,*74
$WIMDA,29.1520,I,0.9872,B,14.3,C,,,92.4,,13.0,C,,,,,,,,*71
$WIMDA,29.1520,I,0.9872,B,14.4,C,,,92.1,,13.1,C,,,,,,,,*72
$WIMDA,29.1520,I,0.9872,B,14.4,C,,,92.4,,13.1,C,,,,,,,,*77
$WIMDA,29.1520,I,0.9872,B,14.4,C,,,92.6,,13.2,C,,,,,,,,*76
$WIMDA,29.1520,I,0.9872,B,14.5,C,,,91.0,,13.0,C,,,,,,,,*70
$WIMDA,29.1550,I,0.9873,B,14.4,C,,,91.5,,13.0,C,,,,,,,,*72
$WIMWD,,,,,,,,*40
$WIMWV,,T,,,V*7C
$WIMWV,112.5,R,0.6,N,A*22
$WIMWV,116.0,R,0.7,N,A*22
$WIMWV,124.5,R,0.5,N,A*24
$WIMWV,125.3,R,0.6,N,A*20
$WIMWV,135.8,R,0.5,N,A*29
$WIMWV,90.3,R,0.2,N,A*1B
$WIMWV,90.3,R,0.3,N,A*1A
$WIMWV,90.3,R,0.4,N,A*1D
$WIMWV,90.3,R,0.5,N,A*1C
$WIVWR,112.9,R,0.4,N,0.2,M,0.7,K*5D
$WIVWR,114.3,R,0.7,N,0.4,M,1.3,K*51
$WIVWR,115.5,R,0.5,N,0.3,M,0.9,K*58
$WIVWR,129.1,R,0.5,N,0.3,M,0.9,K*53
$WIVWR,135.8,R,0.5,N,K*57
$WIVWR,90.3,R,0.1,N,0.1,M,0.2,K*6F
$WIVWR,90.3,R,0.3,N,0.2,M,0.6,K*6A
$WIVWR,90.3,R,0.4,N,0.2,M,0.7,K*6C
$WIVWR,90.3,R,0.5,N,0.3,M,0.9,K*62
$WIVWT,,,,,,,,*4B
$WIXDR,C,,C,WCHR,C,,C,WCHT*56
$YXXDR*4F
$YXXDR,C,,C,WCHR,C,,C,WCHT,C,,C,HINX,P,0.9871,B,STNP*4C
$YXXDR,C,,C,WCHR,C,,C,WCHT,C,,C,HINX,P,0.9872,B,STNP*4F
$YXXDR,C,,C,WCHR,C,,C,WCHT,C,,C,HINX,P,0.9873,B,STNP*4E
|
я пытаюсь сделать замену, что вроде такого:
$zamena = array("GPGGA" => "первое","GPGLL" => "второе","PAMTS" => "справа","WIMDA" => "что-то");
$pattern="#^\\$([A-Z]){4,5}(.?)$#se";
$out=preg_replace($pattern, '$zamena[\'$1\']', $out);
echo "<pre>";
print_r($out);
|
| |
|
|
|
|