我需要解析XML标签。但是一些标签显示为空白,如下所示。
所以基本上我想使用正则表达式删除XML标记内的空白字符。
<Employee >< Name>ABC</Name><Age>21</Age ></Employee>
在Employee的标签中,名称和年龄空间出现在标签的前面或后面,但位于<>
之间。
所以基本上我想得到这样的输出。
<Employee><Name>ABC</Name><Age>21</Age></Employee>
注意:<>
之间的空格可以是多个而不是单个出现。
请为此提供正则表达式帮助我。
谢谢。
答案 0 :(得分:2)
例如,可能捕获我们不需要的空间的表达式类似于:
<\s*(\/)?\s*(\S+?)\s*>
,我们也许可以替换为:<$1$2>
。
编辑:
<\s*(\/)?\s*(\S+?)\s*(\/)?>
,我们的代码可能类似于:
regexp_replace(str,'<\\s*(\\/)?\\s*(\\S+?)\\s*(\\/)?>','<$1$2$3>')
leftjoin建议:
对于Hive使用双反斜杠,它可以正常工作:
regexp_replace(str,'<\\s*(\\/)?\\s*(\\S+?)\\s*>','<$1$2>')