[英]Python3 regex issue
我正在為需要解析命令行參數的問題編寫解決方案。 在解析之前,我首先進行了驗證。
允許的參數為:
someKey=(apps IN (app1))
someKey=(apps IN (app1,app2))
someKey=(apps IN (app1,app2, app3))
但是,如果逗號位於最后一個應用程序名稱的末尾,那么我希望驗證失敗。
someKey=(apps IN (app1,app2,))
我寫了正則表達式如下。
\(apps\sIN\s\((app\d|,)+\)\)
但是它同時考慮了有效和無效的情況。 我有一些關於向前看和向后看的參考,但是未能正確實現。 你們可以幫助我了解解決此問題的方法嗎?
您可以使用\\(apps\\sIN\\s\\((app\\d+)(,\\s*app\\d+)*\\)\\)
這將確保至少存在一個app\\d+
,並且每個后續出現都必須以逗號(和可選的空格)開頭。
如果需要捕獲應用程序名稱,則可以使用:
\(apps\sIN\s\((app\d+)((?:,\s*(?:app\d+))*)\)\)
你將不得不在捕獲組1中的第一應用程序的名稱,其余的-包括逗號-在捕獲組2,那么這將需要由逗號被分割,並且具有空間strip
PED關閉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.