在第二个分号之后和第一个连字符之前解析字符串的正则表达式
Regular expression to parse a string after second semi colon and before first hyphen
我正在 Google Spanner 上的 SQL 中编写正则表达式。以下是场景:
我有一个字符串 ABC : DEP : 050-G&H Sample - IJ
,我想从中解析 50
。
同样,如果我有一个字符串 ABC : DEP : PQ-Word1 Word2 Word3
,我想从中解析 PQ
。
我采用了两种方法来解决这个问题:
方法一
我为它写了一个正则表达式:([^:]*)-
。这将按以下方式解析上述两个示例:
ABC : DEP : 050-G&H Sample - IJ
- : 050-G&H Sample -
ABC : DEP : PQ-Word1 Word2 Word3
- : PQ-
方法二
我写的是:( )?([a-z]|[A-Z]|[0-9])*-
,但是括号里的space在Google Spanner里被忽略了,报错了。
我想使用第一种方法来实现。请提供一些建议。
您可以使用
: *0*([^-:]+)-
详情
:
- 冒号
*
- 0 个或更多空格
0*
- 零个或多个 0
个字符
([^-:]+)
- 捕获第 1 组:除 -
和 :
之外的一个或多个字符(仅匹配字母数字字符,替换为 ([a-zA-Z0-9]+)
)
-
- 一个连字符
我正在 Google Spanner 上的 SQL 中编写正则表达式。以下是场景:
我有一个字符串 ABC : DEP : 050-G&H Sample - IJ
,我想从中解析 50
。
同样,如果我有一个字符串 ABC : DEP : PQ-Word1 Word2 Word3
,我想从中解析 PQ
。
我采用了两种方法来解决这个问题:
方法一
我为它写了一个正则表达式:([^:]*)-
。这将按以下方式解析上述两个示例:
ABC : DEP : 050-G&H Sample - IJ
- : 050-G&H Sample -
ABC : DEP : PQ-Word1 Word2 Word3
- : PQ-
方法二
我写的是:( )?([a-z]|[A-Z]|[0-9])*-
,但是括号里的space在Google Spanner里被忽略了,报错了。
我想使用第一种方法来实现。请提供一些建议。
您可以使用
: *0*([^-:]+)-
详情
:
- 冒号*
- 0 个或更多空格0*
- 零个或多个0
个字符([^-:]+)
- 捕获第 1 组:除-
和:
之外的一个或多个字符(仅匹配字母数字字符,替换为([a-zA-Z0-9]+)
)-
- 一个连字符