memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.tistory.com/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

문자열 개수 찾기

문자열의 개수를 찾을 때는 strcount() 메소드를 이용한다.

greet = "Hello, World!"
print("`o` count:", greet.count("o"))
print("`l` count:", greet.count("l"))
`o` count: 2
`l` count: 3

 

문자열이 있는지 확인

strfind() 메소드를 이용한다.

  • 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')

 

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.tistory.com/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!