이 질문에서 How to match this using regex정규식을 사용하여 두 번째 발생을 감지하는 방법은 무엇입니까? (PHP)
지금은 사용자가 제출 한 데이터에서 3D D 키워드를 검색하고 싶습니다. 이 규칙은 3D와 D가 문장에 존재하는 한 유효합니다 (대소 문자를 구분하지 않음). 예를 들어
:
3Dzzzzzzzzzzzzzzzzzzz (무효 때문에 D의 더 초 선두로부터 없음)
zzzzzD
xxx3DzzzzzD (때문에 유효한 문자열에 3D 및 D를 가지고 안함) (3D가 있기 때문에 무효)
지금이 정규식을 사용하고 있지만 어떻게 든 문제가 하나 있습니다.
$subject = 'BLASHSH*3D*8qw9e08e2323*D*';
if(preg_match('/(?=.*3D)(?=.*D).*/i', $subject))
{
echo 'pattern match';
}
else
{
echo 'fail';
}
문제
3D ABC (이것은 잘못된 없어야 문자열도 (D 전혀 번째 발생이 때문에 무효라고한다)에 해당
3D를 반환 때문에 D의 어떤 초 발생하지)
어떻게 해결할 수 있습니까? 규칙이 3D 후, 또는 사이에 (제로 문자를 포함), D에 출석해야하며, 이전 문자의 수를 가질 수있는 경우
3D와 같은 소리가 두 번째 D 앞에 와야합니다. 올바르게 이해하면. –
예 대소 문자를 구분하지 않습니다. D도 3D 이전이 될 수 있습니다. 감사. – cyberfly