簡體   English   中英

python中的正則表達式:如何在模式中使用可變字符串?

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

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