Google bigquery 使用正则表达式从URL提取特定元素
我需要使用正则表达式提取以下URL中“designer”之后的第一个元素(“adidas originals”)Google bigquery 使用正则表达式从URL提取特定元素,google-bigquery,nsregularexpression,bigquery-standard-sql,Google Bigquery,Nsregularexpression,Bigquery Standard Sql,我需要使用正则表达式提取以下URL中“designer”之后的第一个元素(“adidas originals”) xxx/en-ca/men/designers/adidas-originals/shorts 这需要在Google大查询API(标准SQL)中完成。为此,我尝试了几种方法来获得所需的价值,但没有任何成功。以下是迄今为止我找到的最好的解决方案,它显然不是正确的解决方案,因为它返回了“/阿迪达斯原版/短裤” 谢谢 除了换行符LF之外,[^\n]*与0个或更多字符匹配,所以难怪它匹配得
xxx/en-ca/men/designers/adidas-originals/shorts
这需要在Google大查询API(标准SQL)中完成。为此,我尝试了几种方法来获得所需的价值,但没有任何成功。以下是迄今为止我找到的最好的解决方案,它显然不是正确的解决方案,因为它返回了“/阿迪达斯原版/短裤”
谢谢 除了换行符LF之外,
[^\n]*
与0个或更多字符匹配,所以难怪它匹配得太多
您需要一个模式来匹配下一个/
,因此您可以使用
designers/([^/]+)
或者更准确地说:
(?:^|/)designers/([^/]+)
见
详细信息
-字符串开头或(?:^ |/)
(如果/
前面总是有设计器
,则可以使用/
)/
adesigners/
子字符串designers/
-捕获组1(即([^/]+)
函数将返回的内容):除REGEXP\u EXTRACT
之外的一个或多个字符/
(?:^|/)designers/([^/]+)