2017-08-22 33 views
0

正規表現についてよく分かりません。あなたが私を助けることを願っています。正規表現2つの文字列

私は「8月」で始まるファイルだけをしたいファイルにいくつかのファイルの日付

Aug 15:07 file1.txt 
Jul 15:04 file2.txt 
Aug 15:05 file3.txt 
Aug 15:05 file4.txt 
Aug 2016 file5.txt 
Jul 15:09 file6.txt 

を持っていると時間を持っている(:)

/^Aug :/ 

しかし、それをやっては私を示していすべてのファイルが例外なし

+1

ご使用の環境/言語は何ですか? Python/Javascriptなど?一般的な正規表現はhttps://regex101.com/r/mNyJsF/1のようになります – Saleem

+0

https://regex101.com/r/JuoZcQ/1 – mechalynx

+0

@Saleemバッチを使用しています – Danielle

答えて

1

これは、 'Aug:'で始まるファイル名を探します。これはあなたが望むものではありません。

代わりに/^Aug [0-9]{1,2}:/を試してください。それは、ファイル名を探します:「8月」

  • 1つのまたは2桁
    • スタートコロン

    はまた、あなたが実行しているbashコマンドは何ですか?

    (あなたはregex101.comであなたの正規表現をテストすることができ、それが;-)良いウェブサイトまたはそのだ)

  • +0

    ありがとうございます!しかし、私はBATCHを使用していて動作しません:( – Danielle

    +0

    'findstr' regexでは制限数量制限がサポートされていません。 –

    +0

    ' findstr'は分かりませんが、ここで説明しているものを使うことができますhttps://stackoverflow.com/a/5249797/6408940 –

    1

    使用このパターン^Aug\s+[0-9]+:[0-9]+\s+(.+$)Demo

    ^   # Start of string/line 
    Aug   # "Aug" 
    \s   # <whitespace character> 
    +   # (one or more)(greedy) 
    [0-9]  # Character in [0-9] Character Class 
    +   # (one or more)(greedy) 
    :   # ":" 
    [0-9]  # Character in [0-9] Character Class 
    +   # (one or more)(greedy) 
    \s   # <whitespace character> 
    +   # (one or more)(greedy) 
    (   # Capturing Group (1) 
        .   # Any character except line break 
        +   # (one or more)(greedy) 
        $   # End of string/line 
    )   # End of Capturing Group (1) 
    
    +0

    'findstr'正規表現で' + 'と' \ s'のような短縮文字クラスはサポートされていません –

    +0

    @WiktorStribiżew、OPは私が与えた時に 'findstr'について何も指定しませんでした回答 –