用于拆分文本的正则表达式。括号内有空格的特例
Regex to split apart text. Special case for parentheses with spaces in them
我正在尝试在 LookML 中通过分隔符拆分字段。该字段遵循以下格式:
- 经理(AE)
- 经理(AE - MM)
我能够使用这个拆分为第一个案例
sql: case
when rlike (${user_role_name}, '^.*[\(\)].*$') then split_part(${user_role_name}, ' ', -1)
但是,我无法让第二个案例做同样的事情。它在 case 语句中,所以我要添加另一个 when 语句,但我无法找出包含空格的括号的正则表达式。
在此先感谢您的帮助!
“拆分”字符串,我想你的意思是要提取括号中的部分,对吗?
我会使用正则表达式子字符串方法来执行此操作。你没有提到你使用的是什么仓库,语法会有所不同,但在雪花上看起来像:
regexp_substr(${user_role_name}, '\([^)]*\)')
因此,例如,使用您提供的输入:
select regexp_substr('Managers (AE)', '\([^)]*\)')
union all
select regexp_substr('Managers (AE - MM)', '\([^)]*\)')
result
(AE)
(AE - MM)
我正在尝试在 LookML 中通过分隔符拆分字段。该字段遵循以下格式:
- 经理(AE)
- 经理(AE - MM)
我能够使用这个拆分为第一个案例
sql: case
when rlike (${user_role_name}, '^.*[\(\)].*$') then split_part(${user_role_name}, ' ', -1)
但是,我无法让第二个案例做同样的事情。它在 case 语句中,所以我要添加另一个 when 语句,但我无法找出包含空格的括号的正则表达式。
在此先感谢您的帮助!
“拆分”字符串,我想你的意思是要提取括号中的部分,对吗?
我会使用正则表达式子字符串方法来执行此操作。你没有提到你使用的是什么仓库,语法会有所不同,但在雪花上看起来像:
regexp_substr(${user_role_name}, '\([^)]*\)')
因此,例如,使用您提供的输入:
select regexp_substr('Managers (AE)', '\([^)]*\)')
union all
select regexp_substr('Managers (AE - MM)', '\([^)]*\)')
result |
---|
(AE) |
(AE - MM) |