问题描述
我有两种类型的URL需要清除,它们看起来像这样:
["//xxx.com/se/something?SE_{ifmobile:MB}{ifnotmobile:DT}_A_B_C_D_E_F_G_H"]
["//www.xxx.com/se/car?p_color_car=White?SE_{ifmobile:MB}{ifnotmobile:DT}_A_B_C_D_E_F_G_H"]
我想要的结果是;
SE_{ifmobile:MB}{ifnotmobile:DT}_A_B_C_D_E_F_G_H"
我想删除括号以及SE之前的所有内容,URL有所不同,所以我想删除:
第一个URL ["//xxx.com/se/something?
第二个网址:["//www.xxx.com/se/car?p_color_car=White?
我无法理解,我已经尝试过.*\/
。
但是它仍然会保留我不想要的字符串,例如:
(1个网址)=
something?
(2网址)car?p_color_car=White?
解决方法
您可以使用
regexp_replace(FinalUrls,r'.*\?|"\]$','')
请参见regex demo
详细信息
-
.*\?
-除换行符以外的任何零个或多个字符,并尽可能多地添加?
个字符 -
|
-或 -
"\]$
-字符串末尾的"]
子字符串。
注意regexp_replace
语法,您不能省略替换参数,请参见reference:
REGEXP_REPLACE(value,regexp,replacement)
返回一个
STRING
,其中value
的所有子字符串均与常规字符串匹配 表达式regexp
替换为replacement
。您可以在反斜杠中使用反斜杠数字(\ 1至\ 9)。
replacement
参数可插入与相应内容匹配的文本regexp
模式中带括号的组。使用\ 0来指代 完整的匹配文本。