PHP에서 preg_match() 함수 사용

Use Preg_match Function Php



정규식은 텍스트 데이터의 특정 문자열을 일치, 검색 및 바꾸는 데 사용할 수 있는 특정 패턴입니다. 모든 프로그래밍 언어의 강력한 기능입니다. 주로 이메일 유효성 검사, 전화 형식 확인, 로그인 양식의 사용자 이름 및 비밀번호 필드 유효성 검사 등과 같은 다양한 유형의 양식 유효성 검사를 수행하는 데 사용됩니다. 텍스트의 특정 내용은 정규식을 사용하여 검색하고 바꿀 수 있습니다. 무늬. regex 또는 RegExp라고도 합니다. 다양한 유형의 기호가 정규식 패턴을 정의하는 데 사용됩니다.

PHP에는 정규식을 위한 많은 내장 함수가 있습니다. preg_match() 함수가 그 중 하나입니다. 이 함수는 문자열 데이터의 특정 패턴을 일치시키는 데 사용됩니다. 이 튜토리얼에서는 다양한 작업을 수행하기 위해 PHP에서 preg_match() 함수를 사용하는 방법을 설명합니다.







통사론:

정수 또는거짓 preg_match ($패턴,$제목 [, 정렬 &$매치 = 없는 [,정수$플래그 = 0 [,정수$오프셋 = 0]]])

이 함수는 5개의 인수를 사용할 수 있습니다. 첫 번째 주장, $패턴 , 일치하는 패턴을 정의하는 필수입니다. 두 번째 주장, $제목 , 필수이며 패턴이 적용될 문자열 데이터를 포함합니다. 세 번째 주장, $매치 , 선택 사항이며 일치 항목을 기반으로 배열을 반환합니다. 네 번째 주장, $플래그 는 선택 사항이며 일치를 기반으로 하는 다양한 유형의 플래그 값을 포함합니다. 다섯 번째 주장, $오프셋 , 선택 사항이며 검색의 시작 위치를 정의하는 데 사용할 수 있습니다.



예 1: 대소문자를 구분하고 대소문자를 구분하지 않는 방식으로 패턴 일치

다음 예는 대소문자를 구분하고 대소문자를 구분하지 않는 방식으로 문자열을 일치시키기 위한 preg_match() 함수의 사용을 보여줍니다. 다음 스크립트를 사용하여 PHP 파일을 만듭니다.



여기서 세 가지 preg_match() 함수에 적용하기 위해 세 가지 패턴이 사용됩니다. 첫 번째 패턴, '/좋다/', 대소문자를 구분하는 방식으로 문자열을 일치시키는 데 사용됩니다. 두 번째 패턴, '/처럼/' , 대소문자를 구분하는 방식으로 문자열을 일치시키는 데 사용됩니다. 세 번째 패턴, '좋아요/나' , 대소문자를 구분하지 않고 문자열을 일치시키는 데 사용됩니다. search_pattern() 함수는 매칭을 위해 preg_match() 함수를 사용하도록 스크립트에 정의되어 있으며, 이 함수의 반환 값을 기반으로 메시지를 출력합니다.







//텍스트 정의

$text = '나는 PHP를 좋아한다. 자바스크립트도 좋아해요.';

// 세 가지 유형의 패턴 정의

$패턴1 = '/좋다/';

$패턴2 = '/처럼/';

$패턴3 = '/좋아요/나';

//텍스트에서 패턴을 검색하는 함수 정의

기능search_pattern($패턴, $문자열)

{

만약( preg_match ($패턴, $문자열))

던졌다 '검색 결과: 패턴과 일치하는 항목을 찾았습니다.$패턴
'
;

또 다른

던졌다 '검색 결과: 패턴과 일치하는 항목을 찾을 수 없습니다 -$패턴
'
;

}

//원문 출력

던졌다 '원문은 다음과 같다. $text
'
;

// 세 가지 패턴에 대해 함수를 세 번 호출합니다.

search_pattern($패턴1, $text);

search_pattern($패턴2, $text);

search_pattern($패턴3, $text);

?>

산출 :

서버에서 스크립트를 실행하면 다음 출력이 나타납니다. 첫 번째 줄은 패턴이 검색된 텍스트를 보여줍니다. 두 번째 줄은 첫 번째 패턴의 출력을 보여줍니다. 세 번째 줄은 두 번째 패턴의 출력을 보여줍니다. 네 번째 줄은 세 번째 패턴의 출력을 보여줍니다.



예 2: URL 확인

다음 예제는 preg_match() 함수를 사용하여 URL 주소를 확인하는 방법을 보여줍니다. 다음 스크립트를 사용하여 PHP 파일을 만듭니다.

테스트를 위해 $url 변수에 URL 값이 할당됩니다. preg_match() 함수에서 '@^(?:https://)?([^/]+)@i' 문자열을 패턴으로 사용하여 URL 주소가 유효한지 확인합니다. 유효하면 호스트 이름과 도메인 이름이 인쇄되고, 그렇지 않으면 오류 메시지가 인쇄됩니다.



//URL 정의

$url = 'https://www.linuxhint.com';

//URL 검증을 위한 패턴 정의

$패턴 ='@^(?:https://)?([^/]+)@i';

//URL이 유효한지 확인

만약( preg_match ($패턴, $url, $매치1))

{

//성공 메시지 출력

던졌다 'URL이 유효합니다.
'
;

// 일치하는 값을 포함하는 배열을 인쇄합니다.

던졌다 '배열의 값은 다음과 같습니다. ';

print_r ($매치1);

//호스트 값 검색 및 출력

$호스트 = $매치1[1];

던졌다 '
호스트 이름:$호스트'
;

//호스트 값에서 도메인 이름 검색

preg_match ('/[^.-lex.europa.eu+.[^.íritu+$/', $호스트, $매치2);

던졌다 '
도메인 이름:{$matches2[0]}'
;

}

또 다른

{

//오류 메시지 출력

던졌다 '잘못된 URL.';

}

?>

산출 :

서버에서 스크립트를 실행하면 다음 출력이 나타납니다. 스크립트에 제공된 URL이 유효합니다. 따라서 출력에는 $matches의 값, URL의 호스트 이름 및 URL의 도메인 이름이 표시됩니다.

예 3: 플래그 및 오프셋 값이 있는 검색 패턴

다음 예는 preg_match() 함수에서 플래그 및 오프셋 값의 사용을 보여줍니다. 다음 스크립트를 사용하여 PHP 파일을 만듭니다.

세 가지 유형의 일치를 위해 스크립트에서 세 가지 패턴이 사용됩니다. 첫 번째 preg_match() 함수에서는 '/(bangla)(desh)/'를 패턴으로 사용하고 플래그 값인 PREG_OFFSET_CAPTURE를 사용합니다. 의 가치 $매치 변수는 첫 번째 preg_match() 함수의 출력을 기반으로 인쇄됩니다. 두 번째 preg_match() 함수에서는 '/(bangla)(glad)*(desh)/i'를 패턴으로 사용하고 플래그 값인 PREG_UNMATCHED_AS_NULL을 사용합니다. 패턴의 일부가 일치하지 않으면 NULL 값이 배열에 저장됩니다. 의 가치 $매치 변수는 두 번째 preg_match() 함수의 출력을 기반으로 인쇄됩니다. 세 번째 preg_match() 함수에서 패턴으로 '/glad/'를 사용하고 플래그 값 PREG_OFFSET_CAPTURE를 사용하고 오프셋 값으로 3을 사용합니다. 의 가치 $매치 변수는 세 번째 preg_match() 함수의 출력을 기반으로 인쇄됩니다.



//텍스트 값 정의

$text = '방글라데시';

// 세 가지 유형의 패턴 정의

$패턴1 = '/ (뱅글라) (데쉬) / 나';

$패턴2 = '/ (뱅글라) (기쁘다) * (데쉬) / 나는';

$패턴3 = '/기쁜/';


//PREG_OFFSET_CAPTURE 플래그 사용

preg_match ($패턴1, $text, $매치,PREG_OFFSET_CAPTURE);

던졌다 '
';  

print_r ($matches);

echo '

'
;

//PREG_UNMATCHED_AS_NULL 플래그 사용

preg_match ($패턴2, $text, $매치,PREG_UNMATCHED_AS_NULL);

던졌다 '
';  

print_r ($matches);

echo '

'
;

//PREG_OFFSET_CAPTURE 플래그 및 오프셋 값 사용

preg_match ($패턴3, $text, $매치,PREG_OFFSET_CAPTURE, );

던졌다 '
';  

print_r ($matches);

echo '
'
;

?>

산출 :

서버에서 스크립트를 실행하면 다음 출력이 나타납니다.

결론

preg_match() 함수의 사용은 여러 예제를 사용하여 이 자습서에서 설명되었습니다. 이 함수의 다른 인수를 사용하는 방법도 여기에 나와 있습니다. 독자는 이 튜토리얼을 읽은 후 스크립트에서 이 기능을 적절하게 사용할 수 있습니다.