我想写一个正则表达式,它将返回第一次出现的模式,可能有一个可变长度,对于前
1J-AB-AO08-F-15 ==> AB
1P-ABCD-AO08-F-15 ==> ABCD
1L-KK-KKK-F-1000 ==> KK
1M-L-AO08L-F-15 ==> L
我参考了一些在线文章和示例,但找不到与上述模式匹配的解决方案,基本上我想提取第一次出现的" -some text - "在一个字符串中,文字"可能"长度可变。
请帮忙。
答案 0 :(得分:0)
这是一种方式:^\w{1,}-(\w{1,})
SELECT (regexp_matches('1J-AC-AO08-F-15', '^\w{1,}-(\w{1,})'));
SELECT (regexp_matches('1P-ABCD-AO08-F-15', '^\w{1,}-(\w{1,})'));
SELECT (regexp_matches('1L-KK-KKK-F-1000', '^\w{1,}-(\w{1,})'));
SELECT (regexp_matches('1L-BBM-KKK-F-1000', '^\w{1,}-(\w{1,})'));
SELECT (regexp_matches('1L-LL-KKK-F-1000', '^\w{1,}-(\w{1,})'));
结果:
AC
ABCD
KK
BBM
LL
如果您知道字符串的第一部分是固定长度(1J-
,您可以使用:^\w{2}-(\w{1,})