我有以下字符串:
ignoreword1,word1, ignoreword2
我想匹配任何不
ignoreword1
或ignoreword2
的单词这就是我目前所拥有的
(?s)^((?!ignoreword1).)*$
主要目标是使用regex作为postgresql数据库的一部分,在删除“ignoreword1”、“ignoreword2”和逗号“,”后选择列与子字符串匹配的行。
最佳答案
要匹配任何不ignoreword1
或Ignoreword2
的单词,请使用
\b(?!(?:ignoreword1|ignoreword2)\b)\w+
在postgresql中,单词边界是
[[:<:]]
和[[:>:]]
,因此可以使用如下内容:[[:<:]](?!(?:ignoreword1|ignoreword2)[[:>:]])[a-zA-Z]+
图案细节:
[[:<:]]
-前导词边界(?!(?:ignoreword1|ignoreword2)[[:>:]])
-如果整个字符串是ignoreword1
或ignoreword2
[a-zA-Z]+
-一个或多个ascii字母。