我正在Google Spanner上用SQL编写正则表达式。以下是场景:
我有一个字符串ABC : DEP : 050-G&H Sample - IJ
,我想从中解析50
。
类似地,如果我有一个字符串ABC : DEP : PQ-Word1 Word2 Word3
,我想从中解析PQ
。
我遵循两种方法来解决这个问题:
方法1
我为此:([^:]*)-
写了一个正则表达式。这将通过以下方式解析以上两个示例:
ABC : DEP : 050-G&H Sample - IJ
-: 050-G&H Sample -
ABC : DEP : PQ-Word1 Word2 Word3
-: PQ-
方法2
我写了:( )?([a-z]|[A-Z]|[0-9])*-
,但是括号中的空格在Google Spanner中被忽略,并引发错误。
我想使用第一种方法实现这一目标。请为此提供一些建议。
答案 0 :(得分:3)
您可以使用
: *0*([^-:]+)-
请参见regex demo
详细信息
:
-冒号 *
-0个或更多空格0*
-零个或多个0
字符([^-:]+)
-捕获组1:-
和:
以外的一个或多个字符(仅匹配字母数字字符,请替换为([a-zA-Z0-9]+)
)-
-连字符