簡體   English   中英

Python3正則表達式問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM