Ok 이것은 영어로 설명하기가 어렵 기 때문에 예제를 제공 할 것입니다. 괄호보다 regexp에서 더 많은 역 참조 얻기
나는 다음과 같은 형식의 문자열을해야 할 것입니다 : (key-value;key1-value;key2-...
을하고 난 달성하기 위해 정규 표현식을 사용할 계획했다
array('key'=>'value','key1'=>'value1', ...)
배열에게로 데이터를 추출 할 필요가 대부분 of)이 정규 표현식을 작성했습니다.
/^(\w+)-([^-;]+)(?:;(\w+)-([^-;]+))*;?$/
preg_match
및이 코드는
for ($l = count($matches),$i = 1;$i<$l;$i+=2) {
$parameters[$matches[$i]] = $matches[$i+1];
}
그러나 정규 표현식은 입력 문자열의 첫 번째 및 마지막 키 - 값 쌍인 분명히 4 개의 하위 참조 만 반환합니다. 이 문제를 해결할 방법이 있습니까? 나는 문자열의 정확성을 테스트하고 PHP의 explode
을 완벽한 결과를 가진 루프에서 사용하기 위해 정규 표현식을 사용할 수 있다는 것을 알고 있지만, 정규 표현식으로 가능한지 궁금하다.
간단히 말해서 정규 표현식을 사용하여 임의의 숫자의 문자열 (key-value;
쌍)을 캡처해야합니다.
감사합니다.하지만 OP에서 말했듯이 :'정규 표현식을 사용하여 문자열의 정확성을 테스트하고 PHP가 완벽한 결과로 루프에서 폭발 할 수 있음을 알고 있습니다. ' – raveren
그래서 ...이 코드는 작동하지만, regex가 작업에 적합한 도구가 아니더라도 오히려 정규 표현식을 사용하기 때문에 그것을 사용하고 싶지 않습니다. 정규식이 진짜 요구 사항입니까 아니면 작동해야하기 때문에 그냥 그렇게하려고합니까? – David
OP를 읽거나 다시 한 번 인용해야합니까? 단 두어 길이의 단락입니다. 읽으려면 너무 힘들다면 똑똑한 엉덩이의 말을 삼가하십시오. – raveren