문자열.find(부분값)
- 문자열의 왼쪽(앞)에서부터 부분값을 찾는다. 가장 처음 나온 인덱스를 리턴.
문자열.rfind(부분값)
- 문자열의 오른쪽(앞)에서부터 부분값을 찾는다. 동일.
문자열.index(부분값)
문자열.rindex(부분값)
- find, rfind 와 동일하게 진행된다.
- 단, find 는 문자열에 부분값이 존재하지 않아도 error 를 일으키지 않지만
index 는 error 를 일으킨다.
문자열.startswith(부분값)
문자열.endswith(부분값)
- 문자열에 부분값으로 시작하는지, 끝나는지 True/False 로 리턴
# pat로 끝나는 가장 긴 부분 문자열
# pat은 반드시 myString의 부분 문자열로 주어집니다.
# 대문자와 소문자를 구분합니다.
def longest_pat_ending(myString, pat):
return myString[: myString.rfind(pat)+len(pat)]
# if myString.endswith(pat): return myString
# answer = ''
# arr = myString.split(pat)
# for i in range(len(arr) - 1):
# if arr[i] == '': arr[i] = pat
# answer += arr[i]
# return answer if answer.endswith(pat) else answer + pat
'''
solution=lambda x,y:x[:x.rindex(y)+len(y)]
return myString[:len(myString) - myString[::-1].index(pat[::-1])]
answer = ''
for ch in myString:
answer += ch
if mem.endswith(pat):
return answer
'''
print(longest_pat_ending("AbCdEFG", "AbCdEFG")) # "AbCdEFG"
print(longest_pat_ending("ancdnc", "nc")) # "ancdnc"
print(longest_pat_ending("AAAAaaaa", "a")) # "AAAAaaaa"
print(longest_pat_ending("abcdefghidj", "d")) # "abcdefghid"
print(longest_pat_ending("AbCdEFG", "dE")) # "AbCdE"
print(longest_pat_ending("asdf", "a")) # "a"
print(longest_pat_ending("aasdf", "a")) # "aa"
print(longest_pat_ending("aaaaAAAA", "a")) # "aaaa"
print(longest_pat_ending("OxOOo", "Ox")) # "Ox"
https://hyunssssss.tistory.com/365
https://www.w3schools.com/python/ref_string_endswith.asp