正则表达式,用于解析第二个半冒号之后和第一个连字符之前的字符串

时间:2019-01-09 13:41:42

标签: sql regex google-cloud-platform google-cloud-spanner

我正在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中被忽略,并引发错误。

我想使用第一种方法实现这一目标。请为此提供一些建议。

1 个答案:

答案 0 :(得分:3)

您可以使用

: *0*([^-:]+)-

请参见regex demo

详细信息

  • :-冒号
  • *-0个或更多空格
  • 0*-零个或多个0字符
  • ([^-:]+)-捕获组1:-:以外的一个或多个字符(仅匹配字母数字字符,请替换为([a-zA-Z0-9]+)
  • --连字符