khalというプログラムがgrepを使って出力するカレンダーエントリの予定の説明を取得したいです。khalの出力は次のようになります。
20:30-22:30 13.05.2015: Manfred treffen Repeat: FREQ=WEEKLY;BYDAY=WE;WKST=MO
09.05. - 12.05.2015: Britt Besuch
例では、私は一致したいManfred treffen
とBritt Besuch
。ただし、ご覧のとおり、最初の予定は繰り返しの予定であり、khalの場合はこれらの情報が出力に追加されます。この場合、正規表現は、で始まるすべての部分Repeat:
が省略されることを保証する必要がありますが、もちろんそれが存在する場合に限ります。
grep -oP "(?<=: )(.)+(?=Repeat: .+$)"
私を取得しますManfred treffen
が、しませんBritt Besuch
ただしgrep -oP "(?<=: )(.)+(?=Repeat: .+$|$)"
、両方の予定について説明しますが、最初の予定には「繰り返し:…」の部分全体が含まれています。
私が必要と思われるのは、オプションの先読みです。私はstackoverflowで同様の質問を見つけましたが、アプローチ(Greedy match)を本当に理解しておらず、私の場合にそれを採用することもできませんでした。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加