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}$) 

パターンが部分的に文字列を一致させるために使用されているので、このパターンは、文字列の開始位置を見つける仕事をします-、2桁、-、2桁の4桁で始まり、その後に文字列マーカーの末尾が続きます。

regex demoを参照してください。

空白の一致を禁止するには、パターンの最後に.を追加します。

関連する問題