我有一个看起来像这样的字符串(存储为Google Analytics(分析)中的事件操作值)
0 + 171235652 ++ zu
或
122 + 115166747 ++ en
我想(使用计算字段)创建一个新字段,该字段将仅显示第一个'+'字符之前的数字。因此,在上述示例中
0或122
我尝试过的是(下面),但是没有帮助,有什么想法吗?
REGEXP_REPLACE(Event Action, '(^\\+).*', '')
您可以使用
REGEXP_EXTRACT(Event Action, '^([^+]+)')
请参见regex in action。正则表达式匹配:
^
-字符串开头([^+]+)
-捕获组1:除+
以外的任何一个或多个字符(如果您想在([^+]*)
是第一个字符时也得到空匹配,则可以使用+
)。如果需要替换功能,可以使用
REGEXP_REPLACE(Event Action,"[+].*","")
您尝试的模式(^\\+).*
无效,因为此部分^\\+
与字符串的开头匹配,后跟1个或多个加号。
如果第一个加号之前的数字应该是数字,并且加号本身应该存在,则可以捕获前导数字,然后匹配加号,然后匹配字符串的其余部分。
在替换中使用组1,并使用\\1
。
^(\\d+)\\+.*
部分
^
字符串的开头(\\d+)
捕获组1,匹配1个或多个数字\\+.*
匹配一个+
字符,并且除换行符外,匹配任何字符0或更多次示例代码
REGEXP_REPLACE(Event Action, '^(\\d+)\\+.*', '\\1')