티스토리 뷰
안녕하세요! 오늘은 PHP에서 정규식을 사용하여 특정 형식의 데이터를 가공하는 방법을 살펴보겠습니다. 초보자 분들도 쉽게 따라 하실 수 있도록 차근차근 설명드릴게요. 😊
오늘 다룰 주제: 데이터의 형식 변환
우리가 처리하려는 데이터는 다음과 같은 형태를 가지고 있습니다:
- 입력 데이터: 500KG220V(유선)
- 원하는 출력 결과: 500KG * 220V * 방화용 (유선)
여기에서 500KG, 220V, 그리고 괄호 안의 유선을 추출한 뒤, 특정 형식으로 변환하는 작업을 진행할 거예요. 이를 통해 PHP에서 정규식을 활용하는 기본적인 방법을 배우게 됩니다.
1. 정규식이란 무엇인가요?
**정규식(Regular Expression)**은 문자열에서 특정 패턴을 찾거나 조작하기 위한 강력한 도구입니다. 정규식을 사용하면 단순한 검색뿐만 아니라 복잡한 데이터 형식을 가공하는 데도 매우 유용해요.
예를 들어:
- 숫자를 찾아야 할 때
- 특정 구분자로 나뉜 텍스트를 추출할 때
- 텍스트에서 불필요한 부분을 제거할 때
정규식은 이런 작업을 간단하고 빠르게 처리할 수 있게 도와줍니다.
2. 우리가 사용할 정규식
오늘 사용할 정규식은 다음과 같습니다:
$pattern = '/(\d+)KG(\d{3})V\(([^)]+)\)/';
이 패턴의 의미
- (\d+)KG: 숫자(\d+)와 KG를 추출합니다.
- 예: 500KG에서 500을 추출.
- (\d{3})V: 세 자리 숫자(\d{3})와 V를 추출합니다.
- 예: 220V에서 220을 추출.
- \(([^)]+)\): 괄호 안에 들어 있는 문자를 추출합니다.
- 예: (유선)에서 유선을 추출.
이 패턴을 사용하면 입력 데이터에서 원하는 정보만 깔끔하게 추출할 수 있습니다.
3. PHP 코드로 정규식 활용하기
이제 PHP 코드로 정규식을 활용하여 데이터를 가공하는 방법을 살펴보겠습니다. 아래는 최종적으로 사용된 코드입니다.
// 입력 데이터
$spec = "500KG220V(유선)";
// 정규식 패턴
$pattern = '/(\d+)KG(\d{3})V\(([^)]+)\)/';
// 정규식 실행
if (preg_match($pattern, $spec, $matches)) {
// 추출된 데이터 할당
$kg = $matches[1] . 'KG'; // '500KG'
$voltage = $matches[2] . 'V'; // '220V'
$wire = $matches[3]; // '유선'
// 새로운 형식으로 변환
$spec = "$kg * $voltage * 방화용 ($wire)";
} else {
// 정규식이 일치하지 않을 경우
echo "데이터 형식이 올바르지 않습니다.";
}
4. 코드 설명
1) 정규식 매칭
preg_match는 PHP에서 정규식을 실행하는 함수입니다. 데이터가 정규식과 일치하면 true를 반환하고, $matches라는 배열에 매칭된 결과를 저장합니다.
- $matches[1]: 500 (KG 앞의 숫자)
- $matches[2]: 220 (V 앞의 숫자)
- $matches[3]: 유선 (괄호 안의 텍스트)
2) 데이터 변환
추출된 데이터를 $kg, $voltage, $wire로 각각 저장한 뒤, 원하는 형식("$kg * $voltage * 방화용 ($wire)")으로 변환합니다.
3) 오류 처리
데이터가 정규식 패턴과 맞지 않을 경우 "데이터 형식이 올바르지 않습니다."라는 메시지를 출력하여 사용자가 문제를 확인할 수 있도록 합니다.
5. 입력과 출력 결과
입력
$spec = "500KG220V(유선)";
출력
500KG * 220V * 방화용 (유선)
6. 정규식을 함수로 재사용하기
위 코드를 함수로 만들어 필요할 때마다 사용할 수 있도록 만들어 보겠습니다.
function transformSpec($spec) {
$pattern = '/(\d+)KG(\d{3})V\(([^)]+)\)/';
if (preg_match($pattern, $spec, $matches)) {
$kg = $matches[1] . 'KG';
$voltage = $matches[2] . 'V';
$wire = $matches[3];
return "$kg * $voltage * 방화용 ($wire)";
}
return "데이터 형식이 올바르지 않습니다.";
}
// 사용 예시
echo transformSpec("500KG220V(유선)");
출력 결과
500KG * 220V * 방화용 (유선)
7. 마무리하며
정규식은 처음에는 조금 어려워 보일 수 있지만, 실제로 사용해 보면 데이터 처리에 큰 도움이 됩니다. 오늘은 간단한 데이터를 정규식으로 가공하는 예제를 다뤘지만, 이를 기반으로 더욱 복잡한 데이터를 처리할 수도 있습니다.
초보자 분들도 직접 실습해 보시고, 자신만의 데이터 가공 방법을 만들어 보세요! 궁금한 점이 있거나 더 알고 싶은 내용이 있다면 언제든 댓글로 남겨주세요. 😊
감사합니다! 🙏
'IT tech Coding > php' 카테고리의 다른 글
php 배열에서 특정 키를 기준으로 중복 제거하기 array_reduce , (0) | 2024.12.03 |
---|---|
[php] array_filter의 강력한 기능, 배열의 정리정돈 (0) | 2024.11.30 |
폴더의 오늘 이전 날짜의 JSON 파일을 삭제하는 PHP 코드 (0) | 2024.11.26 |
while($row = $stmh->fetch(PDO::FETCH_ASSOC)) { 이 코드가 두번째는 실행이 안되는 이유는? (0) | 2024.11.25 |
서버의 www 폴더에 .htaccess 어떤 내용으로 세션시간을 늘리는가? (0) | 2024.11.04 |
- Total
- Today
- Yesterday
- 엑셀입력보호
- sql문장 날짜계산
- 프로그래머생활
- 오블완
- ajax오류메시지
- #InnoSetup
- 파이썬코드줄바꿈방법
- #NSIS
- Bootstrap 5
- 테크에능한여성
- #독립실행파일
- isset을 적용해야 하는 이유
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
- #파이썬패키징
- 오토핫키가이드
- 구글드라이브API
- chatGPT3.5파이썬버전
- General error: 2031
- 효율적코딩방법
- json파일형태보기
- 엑셀셀보호
- #InstallForge
- json파일편하게보는법
- 코딩튜토리얼
- 스크립트작성기초
- 티스토리챌린지
- 뫄프로그래밍
- #프로그램설치
- 엑셀보호
- 코딩효율성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |