Regex 用于删除XML元素名称的正则表达式
我有个情况。为了开发一个相当复杂的XML,我使用了“占位符”。一旦我的XML准备好了,我需要删除那些“占位符” 样本输入Regex 用于删除XML元素名称的正则表达式,regex,xml,wildcard,kettle,Regex,Xml,Wildcard,Kettle,我有个情况。为了开发一个相当复杂的XML,我使用了“占位符”。一旦我的XML准备好了,我需要删除那些“占位符” 样本输入 <consumers> <place-holder_1> <consumer> <val>1</val> </consumer> </place-holder_1> <place-holder_2> <consumer-info
<consumers>
<place-holder_1>
<consumer>
<val>1</val>
</consumer>
</place-holder_1>
<place-holder_2>
<consumer-info>
<val>2</val>
</consumer-info>
</place-holder_2>
</consumers>
1.
2.
样本输出
<consumers>
<consumer>
<val>1</val>
</consumer>
<consumer-info>
<val>2</val>
</consumer-info>
</consumers>
1.
2.
基本上,我正在寻找一个正则表达式,它可以以一种通用的方式删除包含任何带有“placeholder”的标记。1到10之间的任何数字都可以作为“place holder”标签的后缀
我正在努力为此设计正则表达式。下面捕获了所需的节点
^\s*
捕获后,您可以用空字符串替换第一个捕获组。或者您可以使用:
(?=(<\/?place-holder_(10|\d)>))
(?=())
您可以测试它您应该能够使用它
XSLT1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<!--Identity Transform (https://www.w3.org/TR/xslt#copying)-->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[starts-with(local-name(),'place-holder')]">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
@cincount。谢谢,但这不是删除瓦尔。休息好了。我试图在“\u”之后添加“?”,使其成为可选的,但没有效果。@CinCount我的错误。我忘了提到正则表达式也必须删除值,如果它发生的话。我试图在“u”之后加上“?”,但没有用。@vikas我看到你已经接受了我的答案。对于你在上面评论中提到的案例,它对你有效吗?@CinCount..稍微有点变化,它有效。。