Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于删除XML元素名称的正则表达式_Regex_Xml_Wildcard_Kettle - Fatal编程技术网

Regex 用于删除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

我有个情况。为了开发一个相当复杂的XML,我使用了“占位符”。一旦我的XML准备好了,我需要删除那些“占位符”

样本输入

<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..稍微有点变化,它有效。。