• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

문자열에 뒤쪽에 * 넣으려고 하는데..

21.02.08 13:26 작성 조회수 101

1

선생님~ 이번에는..

car_num = "32가나1234"에서

"32가*1234" 이렇게 만들려고 하는데..

강의에서처럼 숫자에서는 마지막 한자리만 바뀌는게 되던데..

문자에서는 적용이 왜 안되나요..?ㅠ

어떻게 해야 할까요?

답변 3

·

답변을 작성해보세요.

1

freedom07님의 프로필

freedom07

질문자

2021.02.09

답변 감사합니다.. 선생님 그런데 제 질문은 

'32'는 숫자 2개인데 ([0-9]) 이렇게 집합 하나로만 묶어줘도 32중 2만 *로 바뀌는데

'가나' 문자2개는 ([가-힣])([가-힣]) 이렇게 집합 2개로 묶어줘야 집합순서에 맞게 *로 바뀌는 이유는 무엇인가요..?

숫자랑 문자는 차이가 있는건가요..?

0

([0-9]) 이건 숫자 하나를 의미해요. 맨 앞의 숫자는 위 정규표현식에서 고려하지 않아요.

숫자-문자-문자-숫자4자리 의 패턴을 보기 때문에 "32가나1234" 에서 "2가나1234" 규칙을 찾게 됩니다.

0

아래와 같이 해보세요.

car_num = "32가나1234"

# "32가*1234"

re.sub("([0-9])([가-힣])([가-힣])([\d]{4})", r"\1\2*\4", car_num)

아래와 같은 정규표현식을 학습할 수 있는 사이트가 있으니 아래 사이트에서 실습해 보세요.

또 검색을 해보면 예제가 많이 있으니 예제를 따라해 보세요.

[RegExr: Learn, Build, & Test RegEx](https://regexr.com/)