PLSQL
我想用标签名称替换标签值
输入:字符串。
输出:转换字符串。
例如:
<project>aQFH454</project><house>dvdrun</house>
于:
<project>project</project><house>house</house>
有人有想法吗?
感谢。
答案 0 :(得分:0)
您可以使用函数REGEXP_REPLACE
并提取正确的正则表达式组来执行此操作:
SELECT REGEXP_REPLACE(txt,'(<)(\w+?)(>)(\w+?)(</)(\w+?)(>)+','\1\2\3\2\5\6\7')
FROM (SELECT '<project>aQFH454</project><house>dvdrun</house>' txt FROM dual)
组\ 2是标签名称:
<project>project</project><house>house</house>
答案 1 :(得分:0)
试试这个。
SELECT REGEXP_REPLACE ('<project>aQFH454</project><house>dvdrun</house>',
'<(.+)>.+</(\1)>',
'<\1>\1</\1>')
FROM DUAL;