グラファイトインスタンスから長い名前空間のリストがあり、正しいフォーマットで入力されていない名前空間をフィルタリングして除外しようとしています。Pythonで少しの正規表現のヘルプが必要
私は通常正規表現でOKをすることができますが、これは私を傷つけていて、誰かが助けてくれることを望んでいました。
行われなければ、私はここまで来ている必要がありますいくつかの基本的な妥当性があります:
^(stats\.gauges\..*\.(?:dur|hop|scz|led|bgi|shi|crk|sas)\.(?:p|s|q|u|d|x)\.)
目標は、これがうまく動作標準化stats.gaugues.*.(exact OR match).(exact OR match).
を下記のものにフィルタリングと一致することです以下のようなもののために:
stats.gauges.gitswarm.dur.p.durgitswarm1.service.repos.eeps-merge_demo.users
しかし、残念なことに、誰かがいくつかのように入った:
stats.gauges.gitswarm.dur.p.durgitswarm1.dur.p.service.repos.eeps-merge_demo.users
これらは、stats.gauges.gitswarm.durham.p.durgitswarm1.dur.p.service.repos.eeps-merge_demo.users
のような完全一致の場合、2番目のdur.p.
の可能性のあるエラーをスキップします。私は望んでいない。
私はこれがかなりシンプルなものだと感じますが、今までそれを把握できていないようです。
ご協力いただければ幸いです。
ありがとうございました!
なぜ 'stats.gauges.gitswarm.durham.p.durgitswarm1.dur.p.service.repos.eeps-merge_demo.users'には、次のされていない標準化された'統計情報を作成する必要があります.gaugues。*。(完全一致または完全一致)。(完全一致または完全一致)。?この場合、 '*'は 'gitswarm.durham.p.durgitswarm1'にマッチします。問題は '*'の定義にあります。 –
1)durは有効な値であり、durhamではなく2)dur.pであるため、失敗する必要があります。無効な値であってもその場所にはいけません。 私はそれが*の定義に同意する、私はそれが正規表現のフォームに配置する問題があると思います。 – NoctemX