2017-03-20 2 views
1

pymongo에서 정규식을 부정 할 수 있습니까? date 필드의 형식이 YYYY-MM-DD이 아닌 문서를 받고 싶습니다.pymongo에서 정규식을 무효화하는 방법

나는

regex = '/^\d{4}-\d{2}-\d{2}$/' 
col.find({'date': {'$not': re.compile(regex)}}, {'_id': 0, 'date': 1}) 

을 해봤지만 내가하고 싶은 일을하지 않습니다.

+1

'regex = r '^ (?!^\ d {4} - \ d {2} - \ d {2} $)''를 사용하십시오. –

답변

1

^\d{4}-\d{2}-\d{2}$ 패턴을 부정하면 해당 패턴을 따르지 않는 모든 문자열을 일치 시키려고합니다.

당신은 부정적 예측을 기반으로 정규식을 사용하여 코드 내부의 부정없이 사용할 수 있습니다 패턴이 부분적으로 문자열을 일치시키는 데 사용되기 때문에

^(?!\d{4}-\d{2}-\d{2}$) 

,이 패턴은 문자열의 시작 위치를 찾는 일을 할 것입니다 2 자리 숫자, -, - 및 2 자리 숫자로 시작하지 않고 문자열 마커의 끝 부분으로 시작합니다.

regex demo을 참조하십시오.

빈 일치를 허용하지 않으려면 패턴 끝 부분에 .을 추가하십시오.

관련 문제