'[^~]+' 是做什么的?

What does '[^~]+' do?

我正在审查我到公司之前编写的一些代码,我看到这个 '[^~]+' 在很多代码中使用。要添加一些上下文,它是 for 循环函数的一部分。

DECLARE
    new_parent_id number;
BEGIN

FOR i IN (
    select regexp_substr(:PAGE1_SELECTED, '[^~]+', 1, level) material_num, rownum
    from dual
    connect by regexp_substr(:PAGE1_SELECTED, '[^~]+', 1, level) is not NULL)
LOOP
    if i.ROWNUM = 1 then
        new_parent_id := ASSIGN_NEW_MATERIAL (
            pMATERIAL_NUMBER => i.MATERIAL_NUMBER,
            pASSEMBLY_NAME => :PAGE1_NEW_ASSEMBLY
        );
    else
        ASSIGN_MATERIAL_TO_PARENT (
            pNEW_PARENT_ID => new_parent_id,
            pPART_NUMBER => i.PART_NUMBER
        );
    end if;
END LOOP;

END;

我希望 :PAGE1_SELECTED 是此代码正在解析的 material_num 值的波浪号分隔字符串。如果您在调用此代码以确定没有波浪号时查看绑定变量的值,我将返回到应用程序以查看是否有不同的代码路径可以生成值列表。