我知道这个问题已经在堆栈溢出中被问了近百次,但是经过大量搜索却找不到我的答案之后,我才问这个问题。
我想从字符串中搜索确切的单词,如下所示。
'svm_midrangedb_nonprod:svm_midrangedb_nonprod_root'
'svm_midrangedb_prod:svm_midrangedb_prod_root'
我只想搜索'prod'
,但同时输出'prod'
和'nonprod'
。
这是我正在使用的代码:
re.search(r"\wprod\w", in_volumes.json()[i]['name'].split(":")[2].lower())
答案 0 :(得分:1)
您必须制定不匹配nonprod
但匹配prod
的规则。
例如,也许可以这样做,以便在n
前面有prod
的情况下,您可以这样排除它:[^n]prod\w
。
或者某些数据在产品前面有n
,而您想保留它。然后,您要排除non
前面的prod
像这样:\w*(?<!non)prod\w*
。
这实际上取决于您的其余数据,并查看可以制定/应用到它们的规则以获取所需的数据。
答案 1 :(得分:0)
这是正常的,因为您的正则表达式告诉您您想要一个包含"prod"
的字符串,为了轻松地解决该问题,您可以执行与以前相同的操作,但是喜欢
re.search(r"\w_prod\w", in_volumes.json()[i]['name'].split(":")[2].lower())
我只要在目标字符串中添加一个_
字符