我有下表:
CREATE TABLE test_regex (
drug TEXT
);
INSERT INTO test_regex
VALUES
('DRUGA 200 MG'),
('DRUGB 150 MCG'),
('DRUGC 1.5 GM BOX'),
('DRUGD 27.2 MG/5 ML VIAL')
;
我想提取以下内容:
200 MG
150 MCG
1.5 GM
27.2 MG
到目前为止,我尝试了以下几点:
SELECT
substring(drug, '[0-9]*\.?[0-9]* MG|GM|MCG')
FROM
test_regex
;
这会导致:
200 MG
MCG
GM
27.2 MG
我也尝试过:
SELECT
substring(drug, '[0-9]*\.?[0-9]* (MG|GM|MCG)')
FROM
test_regex
;
结果如下:
MG
MCG
GM
MG
我认为问题在于如何处理尾随的(MG|GM|MCG)
组,但我在PostgreSQL文档中找不到我想要的东西。我希望得到第一个数字部分,然后是一个空格,然后是MG、GM或MCG。我认为它被归类为带有MG的数字表达式,然后是GM或MCG。
https://stackoverflow.com/questions/51528906
复制相似问题