Permalänk
Medlem

[PHP] regexp problem

Jag har en sträng där jag skulle vilja separera några bitar ur den och lägga varje bit i en Array.

Strängen ser ut såhär:

Result: Array of 21 items: Index 0 String: 'E4457DCF18DF2E70D14FFE8DF65381909DC39268' Index 1 String: '5C794F61F2050FD1AC71C1C366C4878EA3A3DE84' Index 2 String: '921AF619741FE4EC31E3E00F81D9286BDE06EADC' Index 3 String: '4E26C6026EC229AAA8F5F4E42DD3DFDECE4AD2CC' Index 4 String: 'A065D464944C7DF90B02458FFA865A22B1B80D03' Index 5 String: '95022D65738D36CD575CD668DA17A83E959FEF50' Index 6 String: '1D35ACA0FAD0EA3D4980AD76E55490D84AC6072E' Index 7 String: '15DE66B570526112413502AC305F4D362F5449AC' Index 8 String: 'BEE534D4BAB3692C069CF2E2508E14E4D0A4F07C' Index 9 String: 'B9180548AF9810AB0D3484B1BC15FFAFE7217D62' Index 10 String: 'E2BAF08216B659119E5BC721EDE6EC3BAED810F5' Index 11 String: '3F726AB17EDB26DCD55155F4B5E54E9AF9A084D4' Index 12 String: '0F050F57CE69DF943FE90DFF9FF3DA7E7B3A6B8D' Index 13 String: '4D0D94E3399E841348A579332963F1E0A4CFBC8D' Index 14 String: '075A72EF9C415E848D3D13210C4792EE646E12B1' Index 15 String: '249025AE55BEC10AF637A331919648450A164753' Index 16 String: 'EA7860125E992F6DC4CB49D660CB2BF482850268' Index 17 String: '292695EC2007EDDBAA92ACA88A585B61DFDA2E70' Index 18 String: '23A67D0F8E9CB07075A1F4DE8D9B51FFA9412054' Index 19 String: 'CF453ADC360E1B1AC9D9E4362183479A4E8B5A25' Index 20 String: 'C3B88820A7025DDBFCFC83F485945AD2AAE845E8'

Jag vill ha ut tex '921AF619741FE4EC31E3E00F81D9286BDE06EADC' och sen ska den in i en Array, sen ska '4E26C6026EC229AAA8F5F4E42DD3DFDECE4AD2CC' ut och fylla på arrayen osv.

Använder mig utav php funktionen preg_split()

min funktion:

$pattern " \"( .* )\""; $arr = preg_split($pattern, $str);

Och så här blir Arrayen (Loopar ut den stegvis)

Result: Array items: 'E4457DCF18DF2E70D14FFE8DF65381909DC39268' '5C794F61F2050FD1AC71C1C366C4878EA3A3DE84' '921AF619741FE4EC31E3E00F81D9286BDE06EADC' '4E26C6026EC229AAA8F5F4E42DD3DFDECE4AD2CC' 'A065D464944C7DF90B02458FFA865A22B1B80D03' '95022D65738D36CD575CD668DA17A83E959FEF50' '1D35ACA0FAD0EA3D4980AD76E55490D84AC6072E' '15DE66B570526112413502AC305F4D362F5449AC' 'BEE534D4BAB3692C069CF2E2508E14E4D0A4F07C' 'B9180548AF9810AB0D3484B1BC15FFAFE7217D62' 'E2BAF08216B659119E5BC721EDE6EC3BAED810F5' '3F726AB17EDB26DCD55155F4B5E54E9AF9A084D4' '0F050F57CE69DF943FE90DFF9FF3DA7E7B3A6B8D' '4D0D94E3399E841348A579332963F1E0A4CFBC8D' '075A72EF9C415E848D3D13210C4792EE646E12B1' '249025AE55BEC10AF637A331919648450A164753' 'EA7860125E992F6DC4CB49D660CB2BF482850268' '292695EC2007EDDBAA92ACA88A585B61DFDA2E70' '23A67D0F8E9CB07075A1F4DE8D9B51FFA9412054' 'CF453ADC360E1B1AC9D9E4362183479A4E8B5A25' 'C3B88820A7025DDBFCFC83F485945AD2AAE845E8'

Av någon anledning så hamnar "Result: Array" på index 0 och items: på index 1. Grymt störande och jag vet inte hur jag ska utforma mitt mönster i preg_split så jag blir av med det.

//Andreas

Permalänk

Snälla tryck in några enter i input-strängen. Det är hemskt att läsa (nej jag har inte en 30" skärm).

Helt otestat:

$pattern = "#('[\\x]+')#"; $resultArray = preg_match_all($pattern, $input, $matches);

\x betyder för övrigt hex vilket är vad du vill matcha i din input. (Alltså siffrorna 0-9A-F).

Visa signatur