问题描述
我正在处理一个包含页面 URL 路径的 Google 数据洞察字段。示例:
- /
- /sample-url
- /sample-url-2/
- /#sample-url-5/
- /sample-url-3/sample-url-4
- /sample-url-3/sample-url-6
在每一个中,我想在自定义公式/字段中捕获粗体部分——从第一个斜线,直到但不包括第二个斜线(如果有),如果是整个斜线,还包括第一个斜线小路。 (本质上,第一个子目录。)如果有第二个反斜杠会使解决方案更简单,我愿意记录第二个反斜杠,但我猜那样会更复杂。我尝试了以下方法:
REGEXP_EXTRACT(Field,"^/[^/]+/$")
但是没有用;一切都返回空值。那个字符串有什么问题?
解决方法
^/[^/]+/$
模式匹配以 /
字符开头,然后包含一个或多个除 /
以外的字符,然后以 /
字符结尾的字符串。因此,您只能匹配 /abc/
、/123abc/
、/abc-1 2 3.?!/
等字符串。
你可以使用
REGEXP_EXTRACT(Field,"^(/[^/]*)")
参见regex demo。
注意:REGEXP_EXTRACT
需要模式中的捕获组,捕获的内容是返回值。
这里,^
匹配字符串的开头,(/[^/]*)
是一个 捕获组,ID 为 1,匹配一个 /
字符,然后是任意零个或多个字符/
以外的字符(带有 [^/]*
)。