我有以下两个url搜索字符串:
?fbad_id=6073971598331
?fbad_id=+6073971598331
我试着用下面的方法解码它,
substring("search", '.*[?&]fbad_id=([^$&]*)') as fbad_id
但是,当加号存在时,如何更新代码以同时删除它呢?
最佳答案
您可以在[+]?
之后使用+
匹配1或0=
符号:
select substring('?fbad_id=+6073971598331' from '.*[?&]fbad_id=[+]?([^&]*)');
请参见online PostgreSQL demo。
图案细节:
.*
-尽可能多的任何0+字符,直到最后出现后续子模式[?&]
-a?
或&
符号fbad_id=
-afbad_id=
子字符串[+]?
-一个或零个符号+
-捕获与([^&]*)
以外的任何0+字符匹配的组1(因为&
是一个否定字符类)关于regex - 如何在Postgres中使用正则表达式删除加号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43788274/