从匹配中排除字符串的正则表达式

时间:2021-06-15 09:11:35

标签: regex url-rewriting

我正在为 nginx 重写规则编写正则表达式模式以重定向 url。这是我想要匹配和不匹配的字符串模式。

匹配以下 uri 的 url。

/abc/def  
/abc/def/#  
/abc/def#/  
/abc/def/#/  

如果字符串中有 test,则排除 url。

/abc/def/test  
/abc/def#/test  
/abc/def/#/test  
/abc/def/test/dsadasd  
/abc/def#/test/dadsd  

我已经在正则表达式模式下写了,但是两个以黄色突出显示的匹配失败

enter image description here

有什么建议可以解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式模式:

import ibm_db_dbi as db

conn = db.connect("DATABASE=myDB;HOSTNAME=myHost;PORT=myPort;PROTOCOL=TCPIP;UID=user;PWD=pass;", "", "")

Demo

此正则表达式断言 ^\/abc\/def(?!.*\btest\b).*$ 作为组件不会出现在前两个组件之后的路径中的任何位置。您也可以匹配 test,并拒绝任何此类匹配。