oracle SQL 列值中的隐藏字符

Hidden character in SQL column value in oracle

我在 table 的列中有一个值,不知何故在字符串的末尾有一些隐藏的字符。我看不到它,也看不到它。字符串放在下面。我在这个字符串中可以看到的字符总数是 25,但是当我检查字符串的长度时它显示为 26。我尝试了 TRIM 函数但认为它可能是 space,但是它不是。如何从oracle 查询中的字符串中删除此类字符。实际上,我正在使用 regexp_replace 替换此字符串的某些部分,但由于这个问题,正则表达式无法匹配字符串中的最后一个数字以替换它之前的所有内容。

28/110/41492/171486/98122

这是我的正则表达式函数

regexp_replace(trim(ATTRIBUTE_VALUE), '(^|.*?/)' || '98122' || '(/|$)', 'replaced' || '', 1, 1)

分两步完成:

  1. 删除所有不可打印的字符
  2. 应用您的替换模式

这是:

regexp_replace
(
  regexp_replace(attribute_value, '[^[:print:]]'), -- printable string
  '(^|.*?/)' || '98122' || '(/|$)', -- search pattern
  'replaced' || '',  -- replace pattern
  1, -- position
  1 -- occurrence
)