나는 그 얼굴에 단순 해 보이는 문제가 있지만 빈약 한 정규 표현식 기술을 깨뜨렸다. 배열로 변환 한 다음 적절하게 값을 처리해야하는 문자열이 있지만 문자열의 형식을 변경할 수 없습니다 (다른 곳에서 생성 됨). 논리로 인해 당황 스럽습니다.Regex를 사용하여 문자열을 2D 배열로 분할하는 방법?
문자열이다
그것은 기본적 ID 및 소수 값들의 세트이다[6] [2] [3] 12.00; [5] [4]
(이 경우에는 번호 3 == 12.00). ID의 양은 언제든지 변경 될 수 있으며 모든 십진수 값은 일부 또는 모든 ID에있을 수 있습니다.
Array (
[0] => Array (
[id] => 6
[num] =>
)
[1] => Array (
[id] => 2
[num] =>
)
[2] => Array (
[id] => 3
[num] => 12.00
)
Etc...
는 정규식 마법사의이는 내가 달성 할 수있었습니다보다 적은 맹세하여 수행 할 수있는 방법을 알고 계십니까 : 나는 다음과 같은 배열을 할 수있는 이상적인 세계에서는
?내가 지금까지 사용하여 아이디의를 추출 할 수 있었다 :
preg_match_all('@\[(.*?)\]@s', $string, $array);
과 소수 사용 :
preg_match_all('/([0-9]+[,\.]{1}[0-9]{2})/', $string, $array);
하지만 ID 년대와 값 사이의 상관 관계를 잃게됩니다.
당신이 폭발 및 성능의 용어에서 정규식보다는 그것의 더 나은 않는 strstr이 문제를 해결할 수 있습니다 (물론이 개선 될 수있다). – shox