代码之家  ›  专栏  ›  技术社区  ›  mAtsea

类正则表达式ASC数

  •  1
  • mAtsea  · 技术社区  · 7 年前

    我有字符串“KK12340000”,我只想在KK后的前4位按升序排列时对其进行验证,所以我使用类似于:

    select case when REGEXP_LIKE('KK12340000', '^KK(?=\d{4})(?:(.)\\1*|0?1?2?3?4?5?6?7?8?9?)\d{4}$') then 1 else 0 end as valid from dual;
    

    但它返回0。那么,在oracle中是否可以按升序验证数字?

    2 回复  |  直到 7 年前
        1
  •  2
  •   XING    7 年前

    试试这个:

      SELECT CASE
              WHEN REGEXP_LIKE (
                      'KK12230000',
                      '^KK(?:(.)\\1*|0?1?2?3?4?5?6?7?8?9?)\d{4}$')
              THEN
                 1
              ELSE
                 0
           END
              AS valid
      FROM DUAL;
    
        2
  •  -1
  •   not4fame    7 年前

    你也可以试试这样的

    SELECT 'KK12340000' LIKE 'KK%' AND 
    SUBSTRING('KK12340000', 3, 1) - SUBSTRING('KK12340000', 4, 1) < 0 AND
    SUBSTRING('KK12340000', 4, 1) - SUBSTRING('KK12340000', 5, 1) < 0 AND
    SUBSTRING('KK12340000', 5, 1) - SUBSTRING('KK12340000', 6, 1) < 0