반응형
정규식: 목록에서 검색
정규식을 기준으로 목록에서 문자열을 필터링합니다.
보다 더 좋은 것이 있습니까?[x for x in list if r.match(x)]?
전체 예제(파이썬 3):
Python 2.x의 경우 아래의 참고 사항을 살펴보십시오.
import re
mylist = ["dog", "cat", "wildcat", "thundercat", "cow", "hooo"]
r = re.compile(".*cat")
newlist = list(filter(r.match, mylist)) # Read Note below
print(newlist)
인쇄:
['cat', 'wildcat', 'thundercat']
참고:
Python 2.x 개발자의 경우 이미 목록을 반환합니다.Python 3.x에서 반복기를 반환하도록 변경되었으므로 다음으로 변환해야 합니다.list(잘 인쇄된 것을 보기 위해).
Python 3 코드 예제
Python 2.x 코드 예제
다음을 사용하여 Python 3.x에서 반복기를 만들거나 Python 2.x에서 목록을 만들 수 있습니다.
filter(r.match, list)
Python 3.x 반복기를 목록으로 변환하려면 캐스트하기만 하면 됩니다.list(filter(..)).
정규식을 먼저 컴파일하지 않고 이렇게 하려면 다음을 사용합니다.lambda함수 - 예:
from re import match
values = ['123', '234', 'foobar']
filtered_values = list(filter(lambda v: match('^\d+$', v), values))
print(filtered_values)
반환:
['123', '234']
filter()그냥 보다callable첫 번째 인수이므로 해당 호출 가능이 'truthy' 값을 반환한 목록을 반환합니다.
언급URL : https://stackoverflow.com/questions/3640359/regular-expressions-search-in-list
반응형
'programing' 카테고리의 다른 글
| java - 잘못된 StateException: 변경 로그 위치를 찾을 수 없습니다: 클래스 경로 리소스(liquibase) (0) | 2023.07.17 |
|---|---|
| DEBUG 빌드에 대해 Fabric의 Firebase 충돌 분석을 사용하지 않도록 설정할 수 없습니다. (0) | 2023.07.17 |
| Python 클래스 정의 구문 (0) | 2023.07.17 |
| matplotlib에서 x축을 그래프의 맨 위로 이동 (0) | 2023.07.17 |
| 'pip install'을 실행하는 Ubuntu에서 '다음 필수 패키지를 빌드할 수 없습니다: *freetype' 오류가 발생함 (0) | 2023.07.17 |