我有以下两个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/

10-09 02:36