google Data Studio 中的正则表达式提取

regex extract in google data studio

我正在尝试从页面 google 分析维度中提取值(在本例中为最大和最小价格),但遇到了问题,因为 max/min 价格的位置可能因搜索而异用户拿走了。

我试过了:REGEXP_EXTRACT(Page,'.*minPrice.=(.*)')

当值位于字符串末尾时它工作正常,但当值位于开头或中间时捕获字符串的其余部分。

这是页面值的示例:

/search/detail/119441465?s[propertyTypes][0]=house&spropertyTypes=condo&s[minPrice]=999999&s[locations][0][city]=Ocean City&s[locations][0] [州]=新泽西州

/search?s[propertyTypes][0]=house&spropertyTypes=condo&s[minPrice]=999000&s[orderBy][0]=r&s[locations][0][city]=Barnegat Light&s[地点][0][州]=新泽西州

/search/detail/118588431?s[propertyTypes][0]=house&spropertyTypes=condo&s[最低价格]=999000&s[地点][0][城市]=Barnegat Light&s[地点][0] [州]=新泽西州

/search/detail/118588431?s[city]=Barnegat Light&s[state]=NJ&s[propertyTypes][0]=house&spropertyTypes=condo&s[minPrice]=999000

/search/detail/119438690?s[orderBy]=sourceCreationDate,desc&s[locations][0][city]=威尼斯&s[locations][0][state]=FL&s[maxPrice]=525000&s[minPrice]= 99900

/search?s[orderBy]=sourceCreationDate,desc&s[locations][0][city]=威尼斯&s[locations][0][state]=FL&s[maxPrice]=525000&s[minPrice]=99900

/search/detail/119337213?s[orderBy]=sourceCreationDate,desc&s[locations][0][state]=NJ&s[locations][0][county]=Monmouth County&s[maxPrice]=1488000&s[minPrice] =992000

/search/detail/119415983?s[orderBy]=sourceCreationDate,desc&s[locations][0][state]=NJ&s[locations][0][county]=Monmouth County&s[maxPrice]=1488000&s[minPrice] =992000

/search/detail/119046654?s[orderBy]=sourceCreationDate,desc&s[locations][0][state]=NJ&s[locations][0][county]=Gloucester County&s[maxPrice]=148800&s[minPrice] =99200

/search?s[orderBy]=sourceCreationDate,desc&s[locations][0][state]=NJ&s[locations][0][county]=格洛斯特县&s[maxPrice]=148800&s[minPrice]=99200

/search/detail/119330920?s[orderBy]=sourceCreationDate,desc&s[locations][0][state]=NJ&s[locations][0][county]=Gloucester County&s[maxPrice]=148800&s[minPrice] =99200

您可以使用

REGEXP_EXTRACT(Page,'[[]minPrice[]]=([0-9]+)')
REGEXP_EXTRACT(Page,r'\[minPrice]=(\d+)')

regex demo详情:

  • [[]minPrice[]]= / \[minPrice]= - [minPrice]= 字符串
  • ([0-9]+) / \d+ - 第 1 组:一个或多个数字。

.* 不是必需的,因为 REGEXP_EXTRACT 不会将匹配锚定在字符串的开头。