如何删除 - 从右到左读取字符串值时

Posted

技术标签:

【中文标题】如何删除 - 从右到左读取字符串值时【英文标题】:How to remove - when reading string values right to left 【发布时间】:2019-09-12 19:01:04 【问题描述】:

我正在根据现有值中最正确的值创建新列 ABP-1-3-3 CBP-1-10-12-14

我能够从左侧读取的新列的预期值,我正在获取的值

-3 14

enter image description here

如何使用正则表达式替换修改下面的代码以删除任何 - ?

SUBSTR(TEST, -2, INSTR(TEST, '-')-1) AS TEST2,

【问题讨论】:

如果您使用的是 python,您只需将其拆分 - 并取 -1 为什么要使用正则表达式? 对不起,我没有提到它的 Oracle 11g 我很困惑。 “ABP-1-3-3 CBP-1-10-12-14”是一排还是两排?你想得到值“3”和“14”吗? ABP-1-3-3 和 CBP-1-10-12-14 是两个不同的值。我得到 -3 和 14。我想要 3 和 14。 好的,它们是两个不同的值,但它们是在一行还是两行?另外,格式总是一样的吗? 【参考方案1】:

试试这个:

with test as 
( select 'CBP-1-10-12-14' v1 from dual
  union 
  select 'ABP-1-3-3' v1 from dual
)
select regexp_substr( v1 , '[0-9]*$' )
from test

还可以查看 https://regex101.com/r/bS7hF5/1 。这是一个整洁的网站。输入您的正则表达式字符串,它会将其“翻译”为人类可读的描述。

【讨论】:

确实.. 非常感谢。

以上是关于如何删除 - 从右到左读取字符串值时的主要内容,如果未能解决你的问题,请参考以下文章

如何在“Sublime Text”编辑器中使用从右到左的语言

如何使用 CGAffineTransform Scale 从右到左添加动画和放大动画

ios / xcode 使文本书写方向从右到左

如何设置导航抽屉从右到左打开

Python中从右到左的语言

如何在从右到左的位置(视差)连续移动 Sprite?