我对支持 ^ 作为 oracle 中行锚的开头感到困惑。
以下查询不返回任何内容:
select 1 from dual where regexp_like('1000C', '^[\dA-Z]+$');
select 1 from dual where regexp_like('1000C', '^1[\dA-Z]+$');
开头没有 ^ 的相同查询似乎可以正常工作:
select 1 from dual where regexp_like('1000C', '[\dA-Z]+$');
令我惊讶的是,以下查询也不起作用:
select 1 from dual where regexp_like('1000C', '^1[\dA-Z]+');
但是,如果没有 [\dA-Z]+ , ^ 似乎可以工作:
select 1 from dual where regexp_like('1000C', '^1');
下面的问题是关于 ^ 在 oracle 中的一些讨论: Oracle regex - does not start with and not end with
并且下面的 oracle 文档似乎也表示支持 ^: https://docs.oracle.com/cd/B13789_01/appdev.101/b10795/adfns_re.htm#1006817
我针对https://regex101.com/1000C
中的表达式^[\dA-Z]+$
进行了测试,它在网站上的所有风格中都正确匹配。