웹 개발자나 데이터 과학자라면 정규식의 강력함을 잘 알고 있을 것입니다. 정규식은 특정 패턴을 가진 문자열을 찾거나, 대체하거나, 검증하는 데 사용할 수 있는 유용한 도구입니다. 오늘은 특히 숫자를 추출하는 방법에 대해 자세히 알아보겠습니다. 정규식을 사용하여 숫자만 추출할 수 있는 아주 실용적인 팁과 예제를 제공하겠습니다.
1. 정규식 기초: 숫자란 무엇인가?
정규식을 처음 사용하는 사람은 숫자에 해당하는 패턴을 알아야 합니다. 숫자는 0에서 9까지의 숫자를 의미하며, 정규식에서 숫자를 표현하는 방법은 간단합니다. \d를 사용하면 숫자를 나타낼 수 있습니다. 따라서, 모든 숫자를 찾으려면 \d+를 사용하면 됩니다. 여기서 +는 '하나 이상의 숫자'라는 의미입니다.
예제
예를 들어, 다음과 같은 문자열에서 숫자만 추출해 보겠습니다:
const str = "물건은 123개, 가격은 456원입니다.";
const result = str.match(/\d+/g); // ["123", "456"]
2. 다양한 숫자 형식: 정수와 실수
우리가 숫자를 사용할 때, 정수와 실수를 구분해야 할 때가 많습니다. 정규식을 사용하여 이 둘을 구별할 수 있습니다. 정수는 단순히 \d+을 사용하면 되지만, 실수는 다음과 같이 표현합니다: \d+\.\d+는 소수점이 있는 숫자를 찾는 정규식입니다.
예제
예를 들어, 다음과 같은 문자열에서 정수와 실수를 각각 추출해 보겠습니다:
const str = "가격은 123.45원, 67,890원입니다.";
const integers = str.match(/\d+/g); // ["123", "67", "890"]
const decimals = str.match(/\d+\.\d+/g); // ["123.45"]
3. 다양한 국가 및 포맷의 숫자 처리하기
숫자는 국가 및 포맷에 따라 다양하게 표현될 수 있습니다. 예를 들어, 유럽에서는 숫자 구분자로 컴마(,)를 사용하고, 한국에서는 점(.)을 소수점으로 사용합니다. 이러한 포맷을 고려하여 정규식을 구성할 수 있습니다.
예제
다음 문자열에서 유럽식 숫자를 추출해 보겠습니다:
const str = "가격은 1.234,56원입니다.";
const europeanNumbers = str.match(/\d+([.,]\d+)?/g); // ["1.234", "56"]
4. 숫자 유효성 검사하기
정규식은 숫자가 특정 규칙을 준수하는지 확인하는 데도 유용합니다. 예를 들어, 전화번호나 이메일의 숫자 부분이 정확한지 확인하는 데 사용할 수 있습니다.
예제
한국 전화번호의 유효성을 검사하는 정규식을 만들려면 다음과 같이 작성할 수 있습니다:
const phoneNumber = "010-1234-5678";
const valid = /^\d{3}-\d{4}-\d{4}$/.test(phoneNumber); // true
5. 실무에 활용하기: 데이터 클리닝
정규식은 데이터 클리닝 과정에서도 많은 도움을 줍니다. 예를 들어, CSV 파일에서 숫자 데이터를 정제할 필요가 있을 때 유용합니다. 숫자만 추출한 후, 그것을 분석하는 과정이 수월해집니다.
예제
다음과 같은 CSV 데이터를 정리하는 상황을 가정해 보겠습니다:
const csvData = "이름, 나이, 점수\n홍길동, 25, 89\n김철수, 30, 95";
const scores = csvData.match(/\d+/g); // ["25", "89", "30", "95"]
6. 숫자 정규식 최적화하기
정규식의 성능을 최적화하는 것은 대량의 데이터 처리 시 매우 시급한 과제가 될 수 있습니다. 정규식을 간소화하고 최적화를 통해 검색 속도를 향상시킬 수 있습니다. 불필요한 그룹화를 제거하거나, 문자열의 속성을 이용하여 범위를 좁힐 수 있습니다.
예제
다음과 같이 많은 숫자를 포함한 문자열에서 불필요한 그룹화를 줄여 최적화를 도모할 수 있습니다:
const str = "여기 1 2 3 4 5 6 7가 있습니다.";
const numbers = str.match(/[\d]+/g); // ["1", "2", "3", "4", "5", "6", "7"]
마무리: 정규식으로 숫자 처리하는 유용한 팁
지금까지 정규식을 사용해서 숫자를 처리하는 다양한 방법을 알아보았습니다. 다룬 내용들을 요약하자면:
- \d+: 모든 숫자를 찾기
- \d+\.\d+: 실수 찾기
- 유럽과 같은 다양한 숫자 형식에 적응하기
- 전화번호와 같은 유효성 검사에 활용하기
- CSV와 같은 데이터 정제 시 유용함
- 정규식의 성능 최적화를 고려하기
이제 위의 팁들을 활용해 여러분의 프로젝트에 정규식을 적용해 보세요. 적절한 정규식을 사용하면 데이터 처리 및 웹 개발이 훨씬 수월해질 것입니다!