像許多其他人在這裏發帖一樣,我最近開始用Python進行編程。 我遇到了一個問題,試圖定義正則表達式來從字符串中提取一個變量名稱(我有一個保存在列表中的變量名稱列表)。 我解析了我從文件中逐行讀取的部分代碼。 我做的變量列表,:Python中的正則表達式 - 需要幫助
>>> variable_list = ['var1', 'var2', 'var4_more', 'var3', 'var1_more']
我想要做的就是定義re.compile
的東西,也不會說,它發現了兩個var1
;我想做一個完全匹配。根據上面的示例,var
應該不匹配,var1
應該只匹配列表的第一個元素。
我認爲答案可能是結合正則表達式與其他正則表達式的否定,但我不知道如何解決這個問題。
好的,我注意到我錯過了一件重要的事情。變量列表是從一個字符串中收集的,因此可能在var名稱前面有空格,或者在後面簽名。 更準確variable_list會像
>>> variable_list = [' var1;', 'var1 ;', 'var1)', 'var1_more']
在這種情況下,應該認識到前3,但不是最後一個作爲VAR1。
更多代碼和/或解釋將是有用的。目前還不清楚「提取變量名稱」的含義。你想爲每個知道變量名的變量預先創建一個單獨的正則表達式,還是你想要一個匹配任何變量名的re?這些字符串中是否還有其他內容(例如:它們是表達式)還是隻是您想檢查有效性的變量名稱? –
我想做一些類似於製作re.compile(「(someregex)%s(someregex)」,變量)的地方,其中變量應該是已知變量列表中的一個,例如known_variables = ['var1','var2', 'var1_more']用於變量known_variables: – petrovic
_請正確格式化您的代碼。 – agf