반응형
특정 문자 앞의 문자열의 마지막 부분을 얻는 방법은 무엇입니까?
특정 문자 앞에 문자열의 마지막 부분을 인쇄하려고합니다.
문자열 .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"
반응형
'programing' 카테고리의 다른 글
Git : 태그가 어떤 브랜치에 있는지 확인하는 방법은 무엇입니까? (0) | 2021.01.14 |
---|---|
파이썬 목록 이해-반복되는 평가를 피하고 싶다 (0) | 2021.01.14 |
빛나는 R에 대한 툴팁? (0) | 2021.01.14 |
postgresql : 스키마 내의 테이블 이름을 바꾸는 방법 (0) | 2021.01.14 |
다중 상속을 사용할 때 어떻게 죽음의 다이아몬드를 피할 수 있습니까? (0) | 2021.01.14 |