0

次の文字列を preg_replace する方法がわかりません:

$str = "01;01;0000000; text, spaces and many tipes of caracters like : . ; ' - and then ;1234;123; text and/or numbers and/or symbols 02;05;1111; text, spaces and many tipes of caracters like : . ; ' - and then ;4444;333; text and/or numbers and/or symbols 03;07;45457; text, spaces and many tipes of caracters like : . ; ' - and then ;4321;321; text and/or numbers and/or symbols ";

ということで、 の前後をすべて入れ替えたいと思い1234;123ます。1234は常に 4 つの数字のシーケンスであり、123常に 3 つの数字のシーケンスです。

ここに元の文字列の一部があります

$str= "01;01;249;Alcafaz;;;;;;;;;;;3750;011;AGADÃO 01;01;250;Caselho;;;;;;;;;;;3750;012;AGADÃO 01;01;251;Corga da Serra;;;;;;;;;;;3750;013;AGADÃO 01;01;252;Foz;;;123;;;;;3750;014;AGADÃO 01;01;253;Guistola;;;ni ;;;;;3750;015;AGADÃO 01;01;254;Guistolinha;;;;.;;;;3750;016;AGADÃO 01;01;255;Lomba;;;;-;;;;;3750;017;AGADÃO 01;01;256;Povinha;;;;;;;;;;;3750;018;AGADÃO 01;01;257;Vila Mendo;;;; ;;;3750;019;AGADÃO 01;01;258;Aguada de Baixo;;;;;;;;;;PC AGUADA DE BAIXO;3750;996;AGUADA DE BAIXO 01;01;258;Aguada de Baixo;;;;;;;;;;;3750;031;AGUADA DE BAIXO 01;01;260;Landiosa;;;::::;;;;3750;033;AGUADA DE BAIXO 01;01;262;Passadouro;;;;;;;;;;;3750;035;AGUADA DE BAIXO 01;01;263;Aguada de Cima;;;;;;**;;;3750;041;AGUADA DE CIMA 01;01;264;Aguadalte;;;;;-+;;;3750;042;AGUADA DE CIMA";
4

2 に答える 2

0

私は本当に正規表現の第一人者ではありませんが、これは私にとってはうまくいきます:

preg_replace('/()([0-9]{4};[0-9]{3})()/im', 'AAA', $yourString);

Outputs:
01;01;0000000; text, spaces and many tipes of caracters like : . ; ' - and then ;AAA; text and/or numbers and/or symbols 02;05;1111; text, spaces and many tipes of caracters like : . ; ' - and then ;AAA; text and/or numbers and/or symbols 03;07;45457; text, spaces and many tipes of caracters like : . ; ' - and then ;AAA; text and/or numbers and/or symbols
于 2013-10-24T15:39:07.950 に答える