如何删除 - 从右到左读取字符串值时
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”编辑器中使用从右到左的语言