【发布时间】:2020-01-15 12:57:10
【问题描述】:
我在数据库表中有一个字段,格式为:
111_2222_33333,222_444_3,aaa_bbb_ccc
这是整个字段统一的格式。三个下划线分隔的数值,一个逗号,另外三个下划线分隔的数值,另一个逗号,然后是三个下划线分隔的文本值。中间没有空格
我想从第二个数字序列中提取中间值,在上面的例子中我想得到 444
在我继承的 SQL 查询中,使用的正则表达式是 ^.,(\d+)_.$,但这似乎没有任何作用。
我尝试识别第一个逗号、后面的第一个数字和以下下划线 ,222_ 用作起点,然后从那里得到下一个数字,后面没有 _
这个(,\d*_)(\d+[^_]) 选择,222_444 是我得到的最接近的
【问题讨论】:
-
用您正在使用的数据库标记我们的问题。
-
您需要使用数据库进行标记是因为每个数据库都有非常不同的字符串和正则表达式 API。
-
如果你能够得到 ,222_444 ,只需删除第一组的第一个圆括号,你应该根据需要用 444 进行四舍五入 ,\d*(\d+[^])