python中的精确字符串匹配

时间:2015-11-25 10:21:17

标签: python

sysList = str(raw_input('Enter pipe separated list of System [PRIMARY|SECONDARY|]: ')).upper().strip()
p = re.compile(r'\\b'+sysList+'\\b')
nsysList = p.findall(" + sysList + ")

当我运行它时会询问thr系统,如果我选择'SECONDARY',这个sysList变量将在下面的命令中执行:

cmd = "mc-rpc -v " + dStr + " --with-fact serverName='/"+serverList+"/' --with-fact systemType='/"+nsysList+"/' -agent  mc_admin -action runcommand --arg command="+acommand+" > "

当上面的命令运行时,它将在服务器中执行,并通过'sysList'变量在名为xxx.yaml的文件中搜索名为'SECONDARY'的字符串。 所以我得到的结果是xxx.yaml文件中匹配'Secondary'字符串的结果。像:

SECONDARY SECONDARY-HA

但我希望只有SECONDARY而不是所有匹配的模式。请帮帮我。

1 个答案:

答案 0 :(得分:0)

将第二行更改为

p = re.compile(r'\b'+sysList+r'\b')

您不希望在原始字符串中加倍\\,因为它们的用途是:确保您的转义序列保持不变。