0

40,000 レコードを含む 1 つのテキスト ファイルがあります。2011 年 10 月 1 日以降のすべてのアイテムを検索する必要があります。形式は 01-10-2011 です - 正規表現を使用してこれを行うにはどうすればよいですか?

4

1 に答える 1

3

おそらく実行すべきではありませんが、実行できます。

([0-3][2-9]|[1-3]1)-10-2011|[0-3][0-9]-1[12]-2011|[0-3][0-9]-[01][0-9]-201[2-9]

これは、すべての日付が DD-MM-YYYY で有効であり、2019 年より先の日付を見つける必要がなく、必要に応じて調整できることを前提としています。

Dreamweaver CS5 でテストしましたが、長い間に正規表現エンジンが大幅に変更されたとは思えません。Notepad++ 正規表現はバーをサポートしていません。

これが機能する理由の詳細については、バー ( |) で区切られた、一致する 3 つのトップ レベルの代替案があります。最初の選択肢は次のとおりです。

 ([0-3][2-9]|[1-3][0-9])-10-2011

これは、DD が 01 以外の 2011 年 10 月の任意の日付に一致します。文字レベルで 02 ~ 31 をサポートするには、サブ バー グループ([0-3][2-9]|[1-3]1)が必要です。このバーの左側は、11、21、および 31 を省略して 02 ~ 39 に一致し、右側はそれらの省略を正確に受け入れます。

次の最上位の代替案は次のとおりです。

[0-3][0-9]-1[12]-2011

これは、2011 年の 11 月と 12 月のいずれかの日に一致します。

そして最後のグループは次のとおりです。

[0-3][0-9]-[01][0-9]-201[2-9]

これは、2012 年から 2019 年の任意の月の任意の日に一致します。

于 2012-02-16T20:35:40.897 に答える