字符串中完全匹配的关键字

时间:2018-11-30 20:47:22

标签: python string search

我知道这个问题已经在堆栈溢出中被问了近百次,但是经过大量搜索却找不到我的答案之后,我才问这个问题。

我想从字符串中搜索确切的单词,如下所示。

'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())

2 个答案:

答案 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()) 我只要在目标字符串中添加一个_字符