当前位置: 首页 > 面试题库 >

oracle 12c-在最后一次出现字符后选择字符串

曹驰
2023-03-14
问题内容

我有下面的字符串:

ThisSentence.ShouldBe.SplitAfterLastPeriod.Sentence

所以我要选择,Sentence因为它是最后一个时期之后的字符串。我怎样才能做到这一点?


问题答案:

您可能可以使用复杂的正则表达式执行此操作。我喜欢以下方法:

select substr(str, - instr(reverse(str), '.') + 1)

没有什么比测试能证明当字符串结尾时这行不通的了。大约-0 =0。这是一个改进:

select (case when str like '%.' then ''
             else substr(str, - instr(reverse(str), ';') + 1)
        end)

编辑:

您的示例在我在本地Oracle和SQL Fiddle中运行时都有效。

我正在运行此代码

select (case when str like '%.' then ''
             else substr(str, - instr(reverse(str), '.') + 1)
        end)
from (select 'ThisSentence.ShouldBe.SplitAfterLastPeriod.Sentence' as str from dual) t


 类似资料:
  • 问题内容: 我有这样的字符串 我想用转义双引号(\“)替换最后一个双引号(”) 字符串的结果是 我怎样才能做到这一点。我知道要替换字符串的第一次出现。但不知道如何替换字符串的最后一次出现 问题答案: String str = “"Position, fix, dial"“; int ind = str.lastIndexOf(“"“); if( ind>=0 ) str = new StringB

  • 问题内容: 在我的应用程序中,我将附加一个字符串以创建路径以生成URL。现在,我想在按“后退”按钮时删除该附加字符串。 假设这是字符串: 现在我想要一个这样的字符串: 我怎样才能做到这一点? 问题答案: 您可以使用相同的方法

  • 问题内容: 我有类似’keepme:cutme’或’string-without-separator’之类的字符串,应分别成为’keepme’和’string- without-separator’。可以在PostgreSQL中完成吗?我试过了: 但这会留在字符串中,如果字符串中没有字符串,它将无法正常工作。 问题答案: 用途 : 如果分隔符不存在,则返回整个字符串。而且很容易获得第二或第三部分等

  • 问题内容: 有谁知道用一个字符串中的另一个字符串替换最后一个出现的字符串的快速方法? 问题答案: 您可以使用此功能:

  • 我需要从变量中选择最后两个字符,无论是数字还是字母。 例如: 我想显示变量中字符串的最后两个字母。

  • 问题内容: 现在我想从[最后一次出现空格’‘的子字符串中获取“ Hello World” 。我怎么得到它? 问题答案: 这是一种廉价的方法,但是您可以拆分,弹出然后加入以完成它: