나는리스트를 가지고 있는데 그리스트에있는 하나의 아이템이 정규 표현식을 사용하는 문자열에 있는지 알고 싶다. 이것을 할 수있는 방법이 있습니까?파이썬 목록에있는 하나의 항목이 정규식을 사용하는 문자열에 있는지 어떻게 알 수 있습니까?
답변
확실히.
myregex = re.compile(...)
print any(myregex.search(s) for s in my_list_of_strings)
아니면 :
regexs = [re.compile(s) for s in my_list_of_regex_strings]
any(r.search(my_string) for r in regexs)
내 생각 같은 것은 같은 아마도 :
regex_str = '|'.join('(?:%s)'%re.escape(s) for s in list_of_regex_strings)
re.search(regex_str,my_string)
난 아직도 당신이 갈하려는 어떤 방식으로 말할 수 없다 ...
마지막으로 일치하는 정규식을 실제로 알고 싶다면
next(regex_str for regex_str in regex_str_list if re.search(regex_str,mystring))
정규식이 일치하지 않으면 StopIteration
예외가 발생합니다 (잡을 수 있음).
그가 검색 대상 목록으로 시작하는 곳에서 그는 주어진 문자열에서 발생하는 모든 것을 찾습니다. –
@ sr2222 - 6 ~ 7 번 정도 질문을 다시 읽었습니다. 아직 확실하지 않습니다 ... – mgilson
"[a] 목록에있는 하나의 항목이 문자열에 있는지 찾아보십시오"라고 생각하는 단서가 있습니다. 그는 일련의 목표를 가지고 있고 그 중 하나가 문자열에 나타나는지보고 싶어합니다. 그래서 기본적으로 패턴의 or'ed 값들과 "매치"됩니다. 아니면 그냥'any (x가 문자열의 x 인 경우 대상의 x의 경우)'입니다. –
for each item in list:
use regex on string
질문의 일반적인 성격을 고려하여 최대한 구체적으로 지정하십시오.
편집 : 나는 그 영업 이익은 문자열의 목록에있는 한 항목이 정규식를 사용하여 패턴과 일치 여부를 확인하는 방법에 요구하고 있으리라 믿고있어
이 psuedocode입니다, 파이썬 없습니다.
# import the regex module
import re
# some sample lists of strings
list1 = ['Now', 'is', 'the', 'time', 'for', 'all', 'good', 'men']
list2 = ['Me', 'Myself', 'I']
# a regex pattern to match against (looks for words with internal vowels)
pattern = '.+[aeiou].+'
# use any() around a list comprehension to determine
# if any match via the re.match() function
any(re.match(pattern, each) for each in list1)
# if you're curious to determine just what is matching your expression, use filter()
list(filter(lambda each: re.match(pattern, each) , list2))
- 1. 정규식을 사용하여 문자열에 10 자리가 있는지 어떻게 알 수 있습니까?
- 2. 문자열에 정규식을 사용하는 문자가 하나 이상 있는지 어떻게 알 수 있습니까?
- 3. 정규식을 사용하여 텍스트에 IP 주소가 있는지 어떻게 알 수 있습니까?
- 4. 문자열에 단어가 존재하는지 어떻게 알 수 있습니까?
- 5. AppleScript에서는 메뉴 항목이 선택/집중되어 있는지 어떻게 알 수 있습니까?
- 6. 문자열에 java에 URL이 포함되어 있는지 어떻게 알 수 있습니까?
- 7. 문자열에 정확히 어떤 문자가 있는지 어떻게 알 수 있습니까?
- 8. 어떤 공백 문자가 문자열에 있는지 어떻게 알 수 있습니까?
- 9. 문자열에 어떤 문자가 있는지 어떻게 알 수 있습니까?
- 10. 파이썬 인터프리터가 파이썬에서 어디에 있는지 어떻게 알 수 있습니까?
- 11. 파이썬 프로그램에 stdin에서 읽을 내용이 있는지 어떻게 알 수 있습니까?
- 12. 목록의 파이썬 항목이 문자열에 추가되었습니다.
- 13. QLineEdit에 포커스가 있는지 어떻게 알 수 있습니까?
- 14. Java에서 누수가 있는지 어떻게 알 수 있습니까?
- 15. 파이썬 변수가 문자열인지리스트인지 어떻게 알 수 있습니까?
- 16. 같은 JSESSIONID를 사용하는 다른 창이 있는지 어떻게 알 수 있습니까?
- 17. 개체가 비어 있는지 어떻게 알 수 있습니까?
- 18. 드라이브에 플로피가 있는지 어떻게 알 수 있습니까?
- 19. 요소가 화면에 있는지 어떻게 알 수 있습니까?
- 20. 요소가 목록에 있는지 어떻게 알 수 있습니까?
- 21. 파이썬에 자식이 있는지 어떻게 알 수 있습니까?
- 22. 특정 리소스가 있는지 어떻게 알 수 있습니까?
- 23. Dispatcher.DisableProcessing이 활성화되어 있는지 어떻게 알 수 있습니까?
- 24. 오픈 릴레이가 있는지 어떻게 알 수 있습니까?
- 25. 인터넷에 연결되어 있는지 어떻게 알 수 있습니까?
- 26. 파일이 있는지 여부를 어떻게 알 수 있습니까?
- 27. 파일이 비어 있는지 어떻게 알 수 있습니까?
- 28. 컨트롤이 시각화되고 있는지 어떻게 알 수 있습니까?
- 29. 메모리 누수가 있는지 어떻게 알 수 있습니까?
- 30. Ruby : 문자열에 여러 항목이 있는지 확인하는 방법?
질문하신 다른 질문에 대한 답변을 수락하지 않으 셨다는 점에 유의하십시오. 이렇게하면 사람들이 대답하지 않을 수 있습니다. –
@Lattyware : 긴 날이었습니다. 아마도 나는 ...을 꺼야합니다. :-P –
@MartijnPieters - 처음에는 똑같은 생각이었습니다. – mgilson