[英]regex in python: how to use variable string in pattern?
我可以從字符串列表中匹配一個字符串,如下所示:
keys = ['a', 'b', 'c']
for key in keys:
if re.search(key, line):
break
問題是我想匹配由正則表達式+我要指定的字符串組成的模式。 像這樣:
keys = ['a', 'b', 'c']
for key in keys:
if re.search('[^\[]'+key+'[^\]]', line):
break
但這是行不通的(在此示例中,僅當方括號中出現“ a”,“ b”和“ c”時,我才想匹配它們)。 我認為這與原始字符串等有關,但我找不到使它起作用的方法。 有什么建議嗎?
編輯:
假設我要匹配一個更復雜的模式:
'[^\s*data\.'+key+'\s*=\s*\[(.+)[^\]]'
為了匹配括號中的數字:
data.a = [12343.232 ]
re.search('\['+re.escape(key)+']', line):
這將匹配[key]
。 請注意,添加了re.escape
以防止將key
中的字符解釋為regex。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.