문자열에서 하위 문자열의 마지막 항목 색인 찾기
문자열에서 .str
.
를 들어, 문자열이 '먹다'라고 합니다.str = 'hello'
은 '서브스트링'입니다.target = 'l'
3번입니다.
이거 어떻게 해?
사용방법:
>>> s = 'hello'
>>> s.rfind('l')
3
, 이 경우는 사용하지.str
변수 이름으로 지정하지 않으면 기본 제공에 그림자가 표시됩니다.
또는 를 사용할 수 있습니다.
Python2 링크:
>>> s = 'Hello StackOverflow Hi everybody'
>>> print( s.rfind('H') )
20
>>> print( s.rindex('H') )
20
>>> print( s.rfind('other') )
-1
>>> print( s.rindex('other') )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
되지 않았을 때 입니다.rfind()
-1
동시에rindex()
에 의해 예외가 발생합니다(Python2 링크: ).
를 rfind()
코드 '''-1
더 좋아하실 수도 rindex()
에러 메세지가 표시됩니다. 않으면 치 않은 값인 "" " " " " " " " " " " " " " " " " " " " " " " " 할 수 .-1
★★★★★★★★★★★★★★...
예: 마지막 줄바꿈 문자 검색
>>> txt = '''first line
... second line
... third line'''
>>> txt.rfind('\n')
22
>>> txt.rindex('\n')
22
하다를 사용하세요.str.rindex
★★★★★★ 。
>>> 'hello'.rindex('l')
3
>>> 'hello'.index('l')
2
비활성 게시물을 부활시키려는 것은 아니지만 아직 게시되지 않았기 때문에...
(이 질문을 찾기 전에 이렇게 했습니다)
s = "hello"
target = "l"
last_pos = len(s) - 1 - s[::-1].index(target)
첫할 수 .마지막 오카렌스를 검색할 때는 실제로 반전된 문자열에서 첫 오카렌스를 검색합니다. 사실을 알고 나는 knowing실 knowing를 했다.s[::-1]
문자열을 하고) 으로 ()를 지정합니다.그리고 나서, 그 다음에,target
저는 '아까불까불까불까불까불까불까불까불까불까불까불까불까불까불까불까불까불까불까불렀습니다.len(s) - 1 - the index found
인덱스를 반전되지 않은(즉, 원래) 문자열로 만들어야 하기 때문입니다.
★★★★★★★★★★★★★★★★★! iftarget
을 사용하다역행 문자열에서는 찾을 수 없을 것입니다.를 해결하려면 , 「」를 합니다.last_pos = len(s) - 1 - s[::-1].index(target[::-1])
target
.
이것을 시험해 보세요.
s = 'hello plombier pantin'
print (s.find('p'))
6
print (s.index('p'))
6
print (s.rindex('p'))
15
print (s.rfind('p'))
라이브러리는 모든 문자 또는 모든 하위 문자열의 색인을 찾기 위한 도구를 제공합니다.
정해진
import more_itertools as mit
s = "hello"
pred = lambda x: x == "l"
코드
성격.
이제 사용할 수 있는 툴이 있습니다.
next(mit.rlocate(s, pred))
# 3
보완 도구는 다음과 같습니다.
list(mit.locate(s, pred))[-1]
# 3
mit.last(mit.locate(s, pred))
# 3
서브스트링
요.window_size
여러 항목의 선두 항목을 찾는 데 사용할 수 있는 매개 변수:
s = "How much wood would a woodchuck chuck if a woodchuck could chuck wood?"
substring = "chuck"
pred = lambda *args: args == tuple(substring)
next(mit.rlocate(s, pred=pred, window_size=len(substring)))
# 59
둘 다 할 수 있습니다.rfind()
★★★★★★★★★★★★★★★★★」rindex()
문자열 메서드를 사용할 수 있습니다.둘 다 다음과 같이 하위 문자열이 발견된 문자열에서 가장 높은 인덱스를 반환합니다.
test_string = 'hello'
target = 'l'
print(test_string.rfind(target))
print(test_string.rindex(target))
, , 용, 용, 용, 의를 할 때 유의해야 할 이 있습니다.rindex()
한편, method, rindex() method는 검색된 문자열 내에서 타겟 값을 찾을 수 없는 경우 ValueError [substring not found]를 발생시킵니다.rfind()
-1만 반환됩니다.
Python String rindex() 메서드
묘사
Python string method rindex()는 하위 문자열 스트링이 발견된 마지막 인덱스를 반환하거나, 이러한 인덱스가 없는 경우 예외를 발생시켜 검색을 string [beg:end]로 선택적으로 제한합니다.
구문
rindex() 메서드의 구문은 다음과 같습니다.
str.rindex(str, beg=0 end=len(string))
파라미터
str - 검색할 문자열을 지정합니다.
beg - 시작 인덱스입니다.기본값은 0 입니다.
len - 종료 인덱스입니다.기본적으로는 문자열 길이와 동일합니다.
반환값
이 메서드는 마지막 인덱스를 반환합니다. 그렇지 않으면 str을 찾을 수 없는 경우 예외가 발생합니다.
예
rindex()를 사용합니다.
라이브 데모
!/usr/bin/module
str1 = "this is string example....wow!!!";
str2 = "is";
print str1.rindex(str2)
print str1.index(str2)
위의 프로그램을 실행하면 다음과 같은 결과가 나타납니다.
5
2
참조: Python String rindex() 메서드 - Tutorialspoint
rfind를 사용하지 않으시면 이걸로 충분합니다.
def find_last(s, t):
last_pos = -1
while True:
pos = s.find(t, last_pos + 1)
if pos == -1:
return last_pos
else:
last_pos = pos
# Last Occurrence of a Character in a String without using inbuilt functions
str = input("Enter a string : ")
char = input("Enter a character to serach in string : ")
flag = 0
count = 0
for i in range(len(str)):
if str[i] == char:
flag = i
if flag == 0:
print("Entered character ",char," is not present in string")
else:
print("Character ",char," last occurred at index : ",flag)
하면 .rindex()
의 마지막
s="hellloooloo"
b='l'
print(s.rindex(b))
str = "Hello, World"
target='l'
print(str.rfind(target) +1)
또는
str = "Hello, World"
flag =0
target='l'
for i,j in enumerate(str[::-1]):
if target == j:
flag = 1
break;
if flag == 1:
print(len(str)-i)
언급URL : https://stackoverflow.com/questions/9572490/find-index-of-last-occurrence-of-a-substring-in-a-string
'source' 카테고리의 다른 글
MySQL의 열 값 스왑 (0) | 2022.09.08 |
---|---|
빈 결과 확인(PHP, PDO 및 MySQL) (0) | 2022.09.08 |
함수 이름을 문자열로 가져오려면 어떻게 해야 합니까? (0) | 2022.09.08 |
vuex에서의 mapState, mapGetters, mapActions, mapMetations의 차이점 (0) | 2022.09.08 |
'for' 루프를 사용하여 사전을 통해 반복 (0) | 2022.09.08 |