gpt4 book ai didi

python - 正则表达式 python + 变量

转载 作者:行者123 更新时间:2023-12-01 02:38:18 30 4
gpt4 key购买 nike

伙计们,我希望你们能帮我解决这个问题:

我正在尝试查找变量值的匹配项:net_card 是一个字符串

net_card = salida.read()    
regex = re.compile('([a-z])\w+' % re.escape(net_card))

如果我运行此代码,它会显示此错误:

regex = re.compile('([a-z])\w+' % re.escape(net_card))
TypeError: not all arguments converted during string formatting

我还没有找到解决这个问题的方法,即使使用转义字符也是如此。

现在如果我这样做:

net_card = salida.read()

match = re.search('([a-z])\w+', net_card)
whatIWant = match.group(1) if match else None
print whatIWant

即使 net_card 的值为 NAME=ens32,它也仅在输出中显示 (e)。

最佳答案

您的正则表达式 ([a-z])\w+ 将匹配 a-z 范围内的单个字符作为第一组,并将字符串的其余部分匹配为[a-zA-Z0-9_]+。相反,匹配两组 \w+(求值时为 [a-zA-Z0-9_]+),并用等号分隔。这是一个表达式:

(\w+)=(\w+)

在实践中(如果您不关心“NAME”),您可以删除第一组并使用:

net_card = salida.read() 
match = re.match('\w+=(\w+)', net_card)
print(match.group(1) if match else None)

这将输出ens32

关于python - 正则表达式 python + 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45992890/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com