2014-11-21 3 views
-1

일치하는 문자열 목록을 검색하려고합니다.일치하는 문자열 검색

이 문자열의 내 목록입니다

ignore = ['40015','8002'] 

와 나는 evtsummary이 = "뭔가 (8002)는"이

경우 일치하는 경우 일치하는

if any(evtsummary in s for s in ignore): 

을보고 다음 사용하고 있습니다 evtsummary = "something8002"일치하지 않음

두 경우 모두 일치 시키길 원합니다. 에스.

의미
if any(s in evtsummary for s in ignore): 
    ... 

evtsummaryignore 목록의 항목을 포함 않습니다 무슨 뜻처럼

+1

실제로 일어난 일과 비교하여 어떤 일이 일어나길 원하는지 알려주는 부분이 누락되었습니다. 왜냐하면 나에게 그것은 올바르게 작동하는 것처럼 보입니다. – jgritty

+1

작은 문자열 중 하나에서'evtsummary '문자열 전체를 찾고 있기 때문에 일치하지 않습니다. – khelwood

+0

나는 단지 결과가 사실 이길 원한다. –

답변

0

은 같습니다?

+0

이 작품! 도와 주셔서 감사합니다. 당신의 끈과 내가 가지고있는 것의 차이점을 나눌 수 있습니까? –

+0

"네가 가진 것"인 "evtsummary"와 "evtsummary"에 네가 원하는대로 말한 것 "의 차이점이있다. – khelwood

+0

설명해 주셔서 감사합니다. 나는 당신을 업 그레 이드 하겠지만, 아직 충분한 담당자가없는 것 같습니다. –

1

당신이 말한대로 evtsummary이 귀하의 문자열이고 something 8002이 아니고 something8002이 아닌 일치한다고 가정하십시오.

그래서 그냥 확인 후 evtsummary을 분할 :

if any(s in evtsummary.split() for s in ignore): 
+0

혼란을 가져 주어서 죄송합니다. "8002"문자열을 "something8002"와 일치 시키려고하는데 작동하지 않지만 "8002"와 일치합니다 –

+1

내 해석이 거꾸로되어있는 것입니까? – Kasramvd

0

을 당신이 실제로 원하는 것을 명확하지 않다 때문에. 다음 세 가지 시도를 해보십시오. 각각 세 개의 다른 문자열에 대해 테스트합니다.

ignore = ['40015','8002'] 

for evtsummary in ["something 8002", "something8002", "8002"]: 
    print "trying with {}".format(evtsummary) 
    if any(evtsummary in s for s in ignore): 
     print "first" 

    if any(s in evtsummary for s in ignore): 
     print "second" 

    if any(s in evtsummary.split() for s in ignore): 
     print "third" 
    print 

두 번째 옵션을 원했지만 원래 질문은 세 번째를 원하는 것처럼 들렸습니다.

+0

실수로 두 번째 옵션을 찾고있었습니다. 지적했다. –