저는 파이썬에서 일부 문자열이있는 목록을 가지고 있습니다. 목록에서 마녀 항목을 알고 싶다면 "A1_8301"과 같습니다. 이 "_"은 모든 문자가 될 수 있음을 의미합니다. 빠른 방법이 있습니까? 나는 SQL을 사용하는 경우"like"("%"와 "_")와 같은 Python의 문자열 비교
가, 난 그냥 A1_8301 "
감사합니다!
저는 파이썬에서 일부 문자열이있는 목록을 가지고 있습니다. 목록에서 마녀 항목을 알고 싶다면 "A1_8301"과 같습니다. 이 "_"은 모든 문자가 될 수 있음을 의미합니다. 빠른 방법이 있습니까? 나는 SQL을 사용하는 경우"like"("%"와 "_")와 같은 Python의 문자열 비교
가, 난 그냥 A1_8301 "
감사합니다!
파이썬에서 정규 표현식 사용하십시오 :.
을요구 사항과 일치하는 요소 목록을 생성합니다.
^
및 $
앵커는 문자열 일치를 방지하기 위해 필요하다; BA1k8301-42
은 일치하지 않아야합니다. re.match()
호출은 테스트 된 문자열의 시작 부분에서만 일치하지만 ^
을 사용하면 좀 더 명시 적이며 문자열 끝 앵커에 대해서는 $
을 멋지게 반영합니다..
의 _
은 이 1 문자과 일치 함을 의미합니다.정규 표현식은 아마 갈 수있는 방법입니다. IIRC을"같은 x는 "%
이 .*
에 매핑해야합니다 같은 것을 입력하고 _
는 .
에 매핑해야
matcher = re.compile('^A1.8301$')
list_of_string = [s for s in stringlist if matcher.match(s)]
감사합니다! 설명을 아주 좋아했습니다. 정규 표현식을 조금 배웠습니다! – Antonio
목록 대신 단 하나의 문자열을 사용하는 방법이 있습니까? 아니면 항목 목록을 만들어야합니까? – Antonio
@Antonio :이 패턴이있는 긴 문자열이 있다는 뜻입니까? 그런 다음'^'와'$'앵커를 제거하고'pattern.findall (longer_string)'을 사용하십시오; 그게 너에게 성냥의 목록을 줄거야. –