블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
문자열 개수 찾기
문자열의 개수를 찾을 때는 str
의 count()
메소드를 이용한다.
greet = "Hello, World!"
print("`o` count:", greet.count("o"))
print("`l` count:", greet.count("l"))
`o` count: 2
`l` count: 3
문자열이 있는지 확인
str
의 find()
메소드를 이용한다.
- find() 메소드는 찾는 문자열이 있는 경우, 찾은 문자열의 첫번째 인덱스 값을 반환한다.
- 찾은 문자열이 여러개인 경우 첫번째 문자열의 첫번째 인덱스를 반환한다.
- 찾는 문자열이 없는 경우, -1 을 반환한다.
greet = "Hello, Python"
print(greet.find("Python")) # 찾은 문자열의 첫번째 인덱스 반환
print(greet.find("Java")) # 찾는 문자열이 없으면 `-1` 을 반환
foo = "Python2, Python3"
print(foo.find("Python")) # 여러개일때, 첫번째 문자열의 인덱스 반환
7
-1
0
정규식으로 특정 문자열 찾기
re
모듈의 search()
메소드와 정규식을 이용하여 특정 문자열을 찾는다.
- 찾은 뒤에는
group()
또는groups()
를 통해 찾은 문자열을 가져온다. - 찾지 못하면
None
값을 반환한다.
group() 메소드
# a 태그에서 naver URL 찾기
a_tag = "<a href=\"https://www.naver.com\" target=\"_blank\">NAVER</a>"
pattern = r"\"https?://[a-zA-Z0-9.]+\""
search = re.search(pattern, a_tag)
if search:
# 찾으면 group() 을 통해 값을 가져올 수 있다.
print(search.group())
else:
# 못찾으면 None 값을 반환
print("Not found string. {}".format(search))
"https://www.naver.com"
groups() 메소드
# groups() 사용하기
# 아래 예제는 (전체 URL, 프로토콜, 도메인) 가져오는 예제
pattern2 = r"\"((https?)://([a-zA-Z0-9.]+))\""
search2 = re.search(pattern2, a_tag)
if search2:
# 정규식에 포함된 괄호 `(`, `)` 내부의 모든 문자열을 가져온다.
# 가장 겉에 있는 괄호 문자열 부터 가져온다.
# 예 => (https?://[a-zA-Z0-9.]+), (https?), ([a-zA-Z0-9.]+)
print(search2.groups())
else:
print("Not found string. {}".format(search2))
('https://www.naver.com', 'https', 'www.naver.com')
반응형
'Language > Python' 카테고리의 다른 글
MacOS에 Python 3.7.9 버전으로 설치하기 (0) | 2020.11.26 |
---|---|
python으로 qrcode 생성기 만들기 (0) | 2020.08.08 |
파이썬 스레드(Thread) 특징과 GIL (0) | 2020.04.10 |
파이썬 파일과 이미지 다루기(쓰기, 읽기, 추가하기) (0) | 2020.04.09 |
파이썬의 정렬 알고리즘 sort(), sorted() (2) | 2020.03.25 |