【发布时间】:2020-12-15 07:50:22
【问题描述】:
我需要最后一个斜杠后的前 5 个字符。我可以处理斜线后的所有符号,但不能只取前 5 个。
REGEX_SUBSTR('people/capital/base/flagedbyloggers','[^/]*$')
使用[^/]*$,我得到flagedbyloggers,但我只需要flaged,前5个符号。
使用[^/]{5}$,我得到ggers,即最后一个斜杠后的最后5个符号,但我需要flaged,最后一个斜杠后的前5个符号。
有时最后一个斜杠后面的字符串可能会更短,因此它必须使用少于 5 个字符,例如people/capital/base/no 应该只返回 no。
环境是ORACLE数据库。我使用在线工具 https://regexr.com/ 得到的结果相同。
【问题讨论】:
-
环境是什么?试试
([^/]{6})[^/]*$ -
我认为您需要 6 个字符,对吧?
^.*\/(.{6})regex101.com/r/ysmdud/1 -
“我认为环境不重要”它确实很重要。每当您发布正则表达式问题时,重要的是包括您正在使用的编程语言、工具或正则表达式风格。这是因为并非所有风格都支持所有正则表达式功能。语法也可以不同。