匹配 oracle 中的行首 regexp_like
Matching beginning of line in oracle regexp_like
我对在 oracle 中支持 ^ 作为行锚开始感到困惑。
以下查询 returns 无:
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 does not end with
及以下 oracle 文档似乎也表明支持 ^:
https://docs.oracle.com/cd/B13789_01/appdev.101/b10795/adfns_re.htm#1006817
我针对 https://regex101.com/ 中的表达式 ^[\dA-Z]+$
测试了 1000C
,它在网站上的所有版本中都正确匹配。
我无法使字符 class 中的 \d
或 \d
在这里正常工作。但是,[0-9]
似乎有效:
select 1 from dual where regexp_like('1000C', '^1[0-9A-Z]+');
您的第二个查询有效的原因:
select 1 from dual where regexp_like('1000C', '[\dA-Z]+$');
是匹配输入字符串的最后一个C
。但是,前面的 none 个数字实际上是匹配的。
我对在 oracle 中支持 ^ 作为行锚开始感到困惑。
以下查询 returns 无:
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 does not end with
及以下 oracle 文档似乎也表明支持 ^: https://docs.oracle.com/cd/B13789_01/appdev.101/b10795/adfns_re.htm#1006817
我针对 https://regex101.com/ 中的表达式 ^[\dA-Z]+$
测试了 1000C
,它在网站上的所有版本中都正确匹配。
我无法使字符 class 中的 \d
或 \d
在这里正常工作。但是,[0-9]
似乎有效:
select 1 from dual where regexp_like('1000C', '^1[0-9A-Z]+');
您的第二个查询有效的原因:
select 1 from dual where regexp_like('1000C', '[\dA-Z]+$');
是匹配输入字符串的最后一个C
。但是,前面的 none 个数字实际上是匹配的。