"invalid regular expression: parentheses () not balanced"



执行查询时收到错误invalid regular expression: parentheses () not balanced。错误指的是这个部分:

substring(every_x1, 'm[0-9]*.?[0-9]'),
substring(every_x2, 'm[0-9]*(?|-|to|TO)'),
substring(every_x2, 'm[0-9]*(?|time|TIME)')

我在一个在线括号检查器中检查了一下,应该没问题。我做错了什么?

我不知道你正在寻找的确切模式是什么,但如果你想找到实际的"(括号(符号也许你也应该第二次转义,比如这个例子中的

select substring(every_x2, 'm[0-9]*(?|-|to|TO)')::float as part_1

试试这个正则表达式'm(d+(?:s*-s*|s*tos*)d+)M')

select substring('123 12-56 xyz' from 'm(d+(?:s*-s*|s*tos*)d+)M');
-- 12-56 
select substring('123 12 to 56 xyz' from 'm(d+(?:s*-s*|s*tos*)d+)M');
-- 12 to 56

最新更新