我想構建一個依賴於來自許多不同來源的變量的正則表達式。在Python中構建一個詳細的正則表達式
來源:
dict1 = {"a":"somevalue","b":"somevalue","c":"somevalue"}
source2 = "x"
source3 = "_1"
我想建立一個正則表達式,這將取決於我會從上述來源得到的值。 生成的正則表達式如下所示。
^(a|b|c)x[0-9]{0,10}_1
其中:
(a|b|c)
是dict1
和dict
鍵可以具有一個或多個值。x
是值從source2
。-1
是我將從source3
得到的值。
我不滿意,我有這基本上是串聯的來源建立正則表達式的解決方案。我想知道是否還有其他更好更好的解決方案。這是我提出的解決方案。
group1 = "|".join(dict1.keys())
regex = "^("+group1+")"+source2+"[0-9]{0,10}"+source3
會感謝您的幫助。可能是re.verbose
?但我不確定最好的方法是什麼。
似乎合理。只要確保[escape](http://docs.python.org/2/library/re.html#re.escape)正確,您的輸入應包含保留字符,例如'source2 =「。」' – jensgram
只需對基本思想進行微調即可:'regex =「^(%s)%s [0-9] {0,10}%s」%(「|」.join(dict1) ,source2,source3)' –