首页 > 解决方案 > 字符串中的精确关键字匹配

问题描述

我知道这个问题已经在堆栈溢出中被问了近百次,但是在进行了大量搜索并且没有找到我的答案之后,我正在问这个问题。

我正在寻找从字符串中搜索确切的单词,如下所示。

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

标签: pythonstringsearch

解决方案


您必须制定不匹配nonprod但匹配的规则prod

例如,也许你可以这样做,如果n前面有prod,你可以像这样排除它:[^n]prod\w.

或者,有些数据可能n在 prod 前面,而您想保留它。non然后,如果有这样的前面,你想排除prod\w*(?<!non)prod\w*

这实际上取决于您的其余数据,并查看您可以制定/应用什么样的规则来获取您想要的数据。


推荐阅读