我正在尝试从其网址中提取Android应用的ID但获取额外的字符 在sql server中使用replace函数,下面是两个示例URL:
https://play.google.com/store/apps/details?id=com.flipkart.android&hl=zh-CN com.flipkart.android
https://play.google.com/store/apps/details?hl=zh_CN&id=com.surveysampling.mobile.quickthoughts&referrer=mat_click_id%3Df1901cef59f79b1542d05a1fdfa67202-20150429-5128 zh_CN& id = com.surveysampling。 mobile.quickthoughts&安培; R
我现在正在这样做:
SELECT
SUBSTRING(REPLACE(PREVIEW, '&hl=en',''), CHARINDEX('?', PREVIEW) + 4 , 50)
FROM OFFERS_TABLE;
但是对于1st,我得到com.flipkart.android
这是正确的,但对于第二,我得到en_US&id=com.surveysampling.mobile.quickthoughts&r
。
我想从开始时删除en_US&id
,从结尾删除&r
。
有人可以通过我可以推荐的任何帖子或网址来帮助我吗?
答案 0 :(得分:2)
似乎你做了一些假设。出现& r因为它是50个字符。你也得到了en_US,因为你在开头假设了4个字符,但你的第二个字符串有更多。也许你可以分开&然后查找以id =。
开头的变量答案 1 :(得分:2)
您实际要做的是提取前面带有id=
的字符串,直到找到&
,这是URL中变量的分隔符。考虑到这种情况,我提出了以下正则表达式。
正则表达式:(?<=id=)[^&]*
解释:它使用lookbehind
断言,该字符串前面有id=
,直到找到第一个&
。
的 Regex101 Demo 强>