0
두 개의 정규 표현식을 preg_match_all
하나만 사용하여 일치 시키려고합니다. 일치 항목이 포함 된 2 개의 배열을 가져와야합니다. 결과 다차원 배열 인 것을 고려하지 않는 경우가 꽤 잘 작동preg_match_all 및 빈 키
$s = 'abab';
preg_match_all('/(a)|(b)/', $s, $a);
var_dump($a);
:
이 내 현재 코드입니다 그래서
array (size=3)
0 =>
array (size=4)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'a' (length=1)
3 => string 'b' (length=1)
1 =>
array (size=4)
0 => string 'a' (length=1)
1 => string '' (length=0)
2 => string 'a' (length=1)
3 => string '' (length=0)
2 =>
array (size=4)
0 => string '' (length=0)
1 => string 'b' (length=1)
2 => string '' (length=0)
3 => string 'b' (length=1)
, 내가 $a[1]
를 사용할 수 있으며, $a[2]
하지만 알 수 있듯이이 배열에는 "일치하지 않는"키에 빈 값이 있습니다.
내가 필요한 것 :
array (size=3)
0 =>
array (size=4)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'a' (length=1)
3 => string 'b' (length=1)
1 =>
array (size=2)
0 => string 'a' (length=1)
1 => string 'a' (length=1)
2 =>
array (size=2)
0 => string 'b' (length=1)
1 => string 'b' (length=1)
빈 값없이 깨끗한 출력을 얻을 수 preg_match_all
에 전달하는 몇 가지 매개 변수가있다? 나는 이미 array_filter()
을 시도했으나 을 제거하지 못해서 array_filter의 콜백을 사용할 수 없기 때문에 짧은 해결책을 찾고있다. (코드 - 골프 챌린지에 필요하다).
이 출력은 설명서에서 설명한 것과 정확히 같습니다. "깨끗한 결과물"이 의미하는 것은 무엇입니까? – Jon
나는 빈 값없이 출력을 요구하고있다. (내 질문에) –
그것은'(a) | (b)'가 문자 제한이 아니기 때문이다. 3 항목 모두 결과가 정확합니다. –