我有以下字符串:

ignoreword1,word1, ignoreword2

我想匹配任何不ignoreword1ignoreword2的单词
这就是我目前所拥有的
(?s)^((?!ignoreword1).)*$

主要目标是使用regex作为postgresql数据库的一部分,在删除“ignoreword1”、“ignoreword2”和逗号“,”后选择列与子字符串匹配的行。

最佳答案

要匹配任何不ignoreword1Ignoreword2的单词,请使用

\b(?!(?:ignoreword1|ignoreword2)\b)\w+

在postgresql中,单词边界是[[:<:]][[:>:]],因此可以使用如下内容:
[[:<:]](?!(?:ignoreword1|ignoreword2)[[:>:]])[a-zA-Z]+

图案细节:
[[:<:]]-前导词边界
(?!(?:ignoreword1|ignoreword2)[[:>:]])-如果整个字符串是ignoreword1ignoreword2
[a-zA-Z]+-一个或多个ascii字母。

10-07 22:54