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