티스토리 뷰
728x170
문자열에서 숫자만 추출하는 방법에 대해서 알아보겠습니다.
정규표현식(Regex)를 이용한 방법
re.findall(pattern, text)는 문자열 text에서 정규표현식 pattern에 일치하는 내용을 찾아서 리턴합니다.
패턴 r'\d+'에서 d는 숫자를 의미하며 +는 1개 이상을 의미합니다. 즉, 숫자가 1개 이상으로 연결된 문자열을 찾으라는 의미입니다.
아래와 같이 찾으면, 숫자 패턴만 찾아서 리스트로 리턴합니다.
- 1~9의 숫자가 붙어있는 문자열들만 찾아서 리턴합니다.
- 숫자만 추출해서, 그 숫자들을 연결한 문자열을 리턴하진 않습니다.
import re
text = "abc 123 def 456"
numbers = re.findall(r'\d+', text)
print(numbers) # ['123', '456']
isdigit()을 이용한 방법
for문과 isdigit()을 이용하여 아래와 같이 숫자를 추출할 수 있습니다.
- split()으로 문자열을 분리하고 분리된 문자열이 숫자로 구성되어있으면 int로 변환하여 리스트로 리턴합니다.
text = "abc 123 def 456"
numbers = [int(x) for x in text.split() if x.isdigit()]
print(numbers) # [123, 456]
참고로, isnumeric()는 isdigit()과 비슷하지만, 유니코드 숫자들도 인식합니다.
References: https://stackoverflow.com/questions/4289331/how-to-extract-numbers-from-a-string-in-python
그리드형
'개발 > Python' 카테고리의 다른 글
| [Python] 리스트 랜덤 추출 (0) | 2023.09.16 |
|---|---|
| Python에서 숫자(Int/Float)를 문자열로 변환 (0) | 2023.06.24 |
| Python 두개 리스트를 하나로 합치기 (0) | 2023.06.24 |
| Python - split()으로 문자열 분리 (0) | 2023.06.17 |
| Python strip(), rstrip(), lstrip() 공백 제거 (0) | 2023.06.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- Python
- 12e 트램
- aosp 빌드
- 마비노기 모바일
- java
- 안드로이드
- 파란버섯
- Flutter
- 메이플랜드
- 포르투갈
- 15e 트램
- 파이썬
- DART
- 다크스텀프
- 티스토리챌린지
- android
- Skia
- 포르투
- 모루정원
- Unreal Engine
- 리스보아 카드
- 나무던전
- 원숭이의숲
- adb
- 주황버섯
- 와보땅
- 리스본
- 와일드보어의 땅
- javascript
- 오블완
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함
세로형
