/* 주어진 문자열에서 정규식으로 숫자와 문자를 분리하는 예시 */
$string = 'Hello123';
$parts_string = preg_split('/(?<=\D)(?=\d)|(?<=\d)(?=\D)/', $string); // 숫자와 문자를 분리
print_r($parts_string);
/* 출력:
	Array (
		[0] => Hello
		[1] => 123
	)
*/
echo '문자 : ' . $parts_string[0]; // 출력: '문자 : Hello';
echo '슷자 : ' . $parts_string[1]; // 출력: '슷자 : 123';

/* URL에서 프로토콜 종류를 분리하는 간단한 예시 */
$url = "https://www.example.com/path/to/resource";
$parts_url = preg_split('#://#', $url);
print_r($parts_url);
/* 출력:
	Array (
		[0] => https
		[1] => www.example.com/path/to/resource
	)
*/

echo '프로토콜의 종류: ' . $parts_url[0]; // 출력: '프로토콜의 종류: https'
preg_split(
    string $pattern,
    string $subject,
    int $limit = -1,
    int $flags = 0
): array|false

/* preg_split(
	정규식 패턴
	분리할 대상이 되는 문자열[,
	최대로 분할될 수 있는 부분의 수[,
	추가적인 설정을 지정하는 플래그]]
);
*/
$str = 'This,is,a,,string';

/* 주어진 문자열을 쉼표(,)로 구분하고 빈 문자열을 결과로 포함합니다. */
$parts = preg_split('/,/', $str);
print_r($parts);
/* 출력:
	Array (
		[0] => This
		[1] => is
		[2] => a
		[3] =>
		[4] => string
	)
*/

/* 주어진 문자열을 쉼표(,)로 구분하고 빈 문자열을 결과로 포함하지 않습니다. */
$no_empty_parts = preg_split('/,/', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($no_empty_parts);
/* 출력:
	Array (
		[0] => This
		[1] => is
		[2] => a
		[3] => string
	)
*/
$str = 'This,is,a,,string';

/* 주어진 문자열을 쉼표(,)로 구분하고 쉼표(,)는 결과에 포함합니다. */
$with_comma_parts = preg_split('/(,)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($with_comma_parts);
/* 출력:
	Array (
    	[0] => This
    	[1] => ,
    	[2] => is
    	[3] => ,
    	[4] => a
    	[5] => ,
    	[6] =>
    	[7] => ,
    	[8] => string
	)
*/
$str = 'This,is,a,,string';

/* 주어진 문자열을 쉼표(,)로 구분하고
   결과 배열의 각 요소는 (문자열, 시작 위치) 쌍으로 구성됩니다. */
$with_offset_parts = preg_split('/(,)/', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($with_offset_parts);
/* 출력:
	Array (
		[0] => Array (
			[0] => This
			[1] => 0
		)
		[1] => Array (
			[0] => is
			[1] => 5
		)
		[2] => Array (
			[0] => a
			[1] => 8
		)
		[3] => Array (
			[0] =>
			[1] => 10
		)
		[4] => Array (
			[0] => string
			[1] => 11
		)
	)
*/
$csv_data = "John,Doe,25\nJane,Smith,30\n";
$lines = preg_split('/\n/', $csv_data, -1, PREG_SPLIT_NO_EMPTY);
$csv_array = [];

foreach ($lines as $line) {
    $csv_array[] = preg_split('/,/', $line, -1, PREG_SPLIT_NO_EMPTY);
}

print_r($csv_array);
/* 출력:
    Array (
        [0] => Array (
            [0] => John
            [1] => Doe
            [2] => 25
        )
        [1] => Array (
            [0] => Jane
            [1] => Smith
            [2] => 30
        )
    )
*/
$url = 'https://www.example.com/path/to/resource';
$url_parts = preg_split('#://|/#', $url, -1, PREG_SPLIT_NO_EMPTY);

print_r($url_parts);
/* 출력:
	Array (
		[0] => https
		[1] => www.example.com
		[2] => path
		[3] => to
		[4] => resource
	)
*/
$url = 'https://www.example.com/path/to/resource?query=string&foo=bar';

// URL을 구성 요소별로 분리하여 반환
$url_components = parse_url($url);

// 결과 출력
print_r($url_components);
/* 출력:
	Array (
		[scheme] => https
		[host] => www.example.com
		[path] => /path/to/resource
		[query] => query=string&foo=bar
	)
*/