根据特定字符串匹配中断字符串
我在 Oracle 中将以下字符串作为一个连续行,实际上我想在出现“:F”和“:L”之前附加一个回车符/换行符,而不是将这些信息显示为一个连续字符串,这还需要删除 F 和 L 之前的“:”
所以当前字符串:
F:AA BB:F:BB CC dd:F:ZZ Xx Y:L:Hello:F:Goodbye
新显示的字符串:
F:AA BB
F:BB CC dd
F:ZZ Xx Y
L:Hello
F:Goodbye
尝试将其作为 Oracle pl/sql 中的简洁函数来实现,以便我可以传入当前字符串并返回新的字符串带有回车符/换行符的字符串。
I have the following string in Oracle as one continuous line, where instead of displaying this information as one continuous string, I actually would like to append a carriage return/new line before ever occurrence of “:F” and “:L”, which would also require the removal of the “:” before F and L
So current string:
F:AA BB:F:BB CC dd:F:ZZ Xx Y:L:Hello:F:Goodbye
Newly displayed string:
F:AA BB
F:BB CC dd
F:ZZ Xx Y
L:Hello
F:Goodbye
Trying to achieve this as a concise function in Oracle pl/sql, so that I can pass in the current string and get back the new string with carriage return/new line breaks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为你不需要正则表达式。简单的替换应该可以解决问题。
这给了 Unix 风格新的线条。如果您需要 Windows 换行符,则需要使用
CHR(13)||CHR(10)
而不仅仅是CHR(10)
。您也可以在查询中同样使用它。
I don't think you need regex. The simple replace should do the trick.
That gives unix style new lines. If you want windows newlines then you need to use
CHR(13)||CHR(10)
instead of justCHR(10)
.And you can use this just the same in a query too.
只是以正则表达式替换方式:
() 标记可能是引用的分组\GroupPosition# 的替换
几乎是说查找 : 后跟 F: 或 L:,
然后将找到的文本替换为“CHR(13)||CHR(10) ||” + 第二组
And just to throw in a regular expression replace way:
the () mark groupings that may be references in the replace by \GroupPosition#
pretty much is saying look for a : followed by either F: or L:
then replace the found text with "CHR(13)||CHR(10) ||" + the second group
使用正则表达式:
更好地匹配模式。
Using regexp:
Is better match the pattern.