2011-03-11 23 views
1

我需要与以下匹配的正则表达式的帮助。匹配一个空元素的正则表达式

 <xsl:choose> 


    </xsl:choose> 

这是一个空选择元素。里面可能没有或有很多换行符或空格。

编辑:对不起,有点不庄重。我正在尝试修复一个损坏的自动生成的文件。我在Visual Stuidio中打开该文件,并使用“高级替换”对话框,并使用“正则表达式”选项。

感谢所有帮助

Larsi

+0

更具体一点,你是否只想通过这个标签或整个文件进行搜索,只匹配元素的内部。你到目前为止尝试过什么? – 2011-03-11 09:09:13

+0

编程语言/框架的正则表达式?处理多行时,许多正则表达式引擎变得有点奇怪。 – thkala 2011-03-11 09:10:04

+0

我是否需要添加更多上下文? – Larsi 2011-03-11 09:22:13

回答

1

未经测试(PHP):

~<xsl:choose>.*?</xsl:choose>~s 

使用PCRE_DOTALLmodifierlazy量词。


编辑
对不起,我完全忽略了这个 “空” 的一部分。该\s字符类应该用来代替.*?部分(因此,离开PCRE_DOTALL修饰多余):

~<xsl:choose>\s*</xsl:choose>~ 

这已经是在另一个答案(这将让我给予好评)。

+0

对不起,在这个问题上有点不庄重。现在更新。 – Larsi 2011-03-11 09:21:18

+0

@拉斯,不,我只是忽略了问题的重要部分:)见@Stephen Chung的回答。 – jensgram 2011-03-11 09:24:11

1
<xsl:choose>\s*</xsl:choose> 

只匹配标签之间的空格。如果标签内有任何内容,则不会匹配。