如何在postgres中使用正则表达式删除加号?

时间:2017-05-04 16:26:48

标签: regex postgresql

我有以下两个网址搜索字符串:

?fbad_id=6073971598331

?fbad_id=+6073971598331

我尝试使用以下内容对其进行解码,

substring("search", '.*[?&]fbad_id=([^$&]*)') as fbad_id

但是如何更新代码以删除加号呢?

1 个答案:

答案 0 :(得分:0)

您可以使用[+]?+之后匹配1或0 =个符号:

select substring('?fbad_id=+6073971598331' from '.*[?&]fbad_id=[+]?([^&]*)');

查看online PostgreSQL demo

模式详情

  • .* - 尽可能多的0个字符,直到后续子图案的最后一次出现
  • [?&] - ?&符号
  • fbad_id= - fbad_id=子字符串
  • [+]? - 一个或零+ 符号
  • ([^&]*) - 捕获第1组,匹配除&以外的任何0 +字符(因为[^...]是否为否定的字符类)