我正在SQL Alchemy中构建两个混合表达式,我想选择I)之前的所有数字和ii)字符串中连字符之后的所有数字。
给定字符串6-12(1)
,我想分别输出6
和12
。
根据这个答案,我想我需要r"(d+)-"
为I)所以:
@digits_before.expression
def digits_before(cls):
return func.regexp_substr(cls.string_field, r"(d+)-")
但是,这将返回所讨论记录的6-
。
查看生成正则表达式字符串的SQL减少到'(d+)-'
-这可能是为什么?
我需要使用的正确的两个正则字符串是什么?
提前感谢。
似乎这个regexp将捕获两个数字:
(d+)-(d+)
这只获得第一个数字,但验证是否有第二个:
(d+)-d+
亦然:
d+-(d+)