繁体   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