<aside> 💬 lv0, 정규표현식

숫자 추출

문제 설명

주어진 문자열에서 숫자와 쉼표만을 포함한 부분을 추출하고, 쉼표를 제거하여 순수한 숫자만을 반환하는 함수를 작성해주세요. 문자열에 숫자가 없는 경우, 빈 문자열을 반환합니다.

예를 들어, 문자열 "가격은 3,500원입니다."에서 함수는 3500을, "오늘은 2023년 3월 5일"에서는 202335를 반환해야 합니다.


제한 사항


입출력 예

입력 (문자열) 출력 (추출된 숫자 문자열)
"가격은 3,500원입니다." "3500"
"오늘은 2023년 3월 5일" "202335"
"문자만 있는 경우" ""

입출력 설명

주어진 문자열에서 숫자와 쉼표만을 포함한 부분을 추출하고, 쉼표를 제거하여 순수한 숫자 문자열을 반환합니다. 문자열에 숫자가 없는 경우 빈 문자열을 반환합니다.

</aside>

😺 풀이 1. findall

import re

def solution(data):
    numbers_and_commas = re.findall(r"[\\d,]+", data) **#1 패턴 정의 및 findall 함수 사용**
    extracted_numbers = "".join(numbers_and_commas).replace(",", "")
    **#2 join 및 replace 함수 사용**
    return extracted_numbers **#3 결과 반환**

단계별 풀이 전략

  1. 패턴 정의 및 findall 함수 사용

    패턴을 정의한 후 findall 함수를 사용해 일치하는 문자열을 찾습니다.

  2. join 및 replace 함수 사용

    join 함수를 사용하여 숫자와 쉼표로 이루어진 리스트문자열로 변환하고, replace 함수를 사용하여 쉼표를 제거합니다.

  3. 결과 반환

    결과를 반환합니다.

알아둬야 할 개념

join


replace

풀이 2. sub

import re

def solution(data):
    result = re.sub("\\D", "", data) **#1 패턴 정의, #2 sub 함수 사용**
    return result **#3 결과 반환**

단계별 풀이 전략

  1. 패턴 정의

    패턴을 찾습니다.