programing

특정 문자 앞의 문자열의 마지막 부분을 얻는 방법은 무엇입니까?

itsource 2021. 1. 14. 08:16
반응형

특정 문자 앞의 문자열의 마지막 부분을 얻는 방법은 무엇입니까?


특정 문자 앞에 문자열의 마지막 부분을 인쇄하려고합니다.

문자열 .split () 메서드를 사용할지, 문자열 슬라이싱을 사용할지 아니면 다른 것을 사용할지 잘 모르겠습니다.

작동하지 않는 코드가 있지만 논리를 보여줍니다.

x = 'http://test.com/lalala-134'
print x['-':0] # beginning at the end of the string, return everything before '-'

끝에있는 숫자는 크기가 다양하므로 문자열 끝에서 정확한 개수를 설정할 수 없습니다.


str.rsplit()제한 이있는을 (를 ) 찾고 있습니다 .

print x.rsplit('-', 1)[0]

.rsplit() 입력 문자열의 끝에서 분할 문자열을 검색하고 두 번째 인수는 분할되는 횟수를 한 번으로 제한합니다.

또 다른 옵션은를 사용 str.rpartition()하는 것입니다. 이는 한 번만 분할됩니다.

print x.rpartition('-')[0]

한 번만 분할 str.rpartition()하는 경우 더 빠른 방법입니다. 두 번 이상 분할해야하는 경우 str.rsplit().

데모:

>>> x = 'http://test.com/lalala-134'
>>> print x.rsplit('-', 1)[0]
http://test.com/lalala
>>> 'something-with-a-lot-of-dashes'.rsplit('-', 1)[0]
'something-with-a-lot-of'

그리고 같은 str.rpartition()

>>> print x.rpartition('-')[0]
http://test.com/lalala
>>> 'something-with-a-lot-of-dashes'.rpartition('-')[0]
'something-with-a-lot-of'

분할분할의 차이점은 구분 기호가 없는 목록 반환하며 문자열에서 구분 기호가있는 곳에서 분할됩니다.

x = 'http://test.com/lalala-134-431'

a,b,c = x.split(-)
print(a)
"http://test.com/lalala"
print(b)
"134"
print(c)
"431"

파티션 에서만 문자열을 나눌 것이다 첫번째 구분자 만 목록에 3 개 값을 반환합니다

x = 'http://test.com/lalala-134-431'
a,b,c = x.partition('-')
print(a)
"http://test.com/lalala"
print(b)
"-"
print(c)
"134-431"

마지막 값을 원하면 rpartition사용할 수 있습니다 . 동일한 방식으로 작동하지만 문자열 끝에서 구분 기호를 찾습니다.

x = 'http://test.com/lalala-134-431'
a,b,c = x.partition('-')
print(a)
"http://test.com/lalala-134"
print(b)
"-"
print(c)
"431"

참조 URL : https://stackoverflow.com/questions/15851568/how-to-get-the-last-part-of-a-string-before-a-certain-character

반응형