我有一長串來自石墨實例的命名空間,我試圖運行一些驗證並過濾掉沒有使用正確格式輸入的命名空間。在python中需要一點正則表達式幫助
我可以正常使用正則表達式,但這個傷害了我,希望有人能幫上忙。
有需要做一些基本的驗證和遠這個我來:
^(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
因此,這些匹配一路到第二個dur.p.
跳過可能的錯誤精確匹配,如stats.gauges.gitswarm.durham.p.durgitswarm1.dur.p.service.repos.eeps-merge_demo.users
;我不想要。
我覺得這很簡單,但似乎目前看不出來。
任何幫助將非常感激。
謝謝!
那麼,爲什麼'stats.gauges.gitswarm.durham.p.durgitswarm1.dur.p.service.repos.eeps-merge_demo.users'不按規範'統計.gaugues。*。(確切地說是OR匹配)。(確切的OR匹配)。?在這種情況下,'*'匹配'gitswarm.durham.p.durgitswarm1'。問題出在你定義的'*'上。 –
它需要失敗,因爲1)dur是有效值,而不是durham和2)dur.p.應該不應該在它所在的位置,即使是無效的值。 我同意這是與*的定義,我認爲這是我有麻煩放入正則表單形式。 – NoctemX