我可以在<xsl:value-of select =“”>中使用OR运算符吗?</xsl:value-of>

时间:2014-02-19 16:24:50

标签: xslt xslt-2.0 boolean-expression

我一直在使用以下代码将正则表达式'\s*AND\s*NOT\s*scope:\("TEXT"\)'替换为特定字符串,仅当匹配未发生时(non-matching-substring):

<xsl:template name="strip-scopes">
                <xsl:param name="q" />
                <xsl:analyze-string select="$q" regex='\s*AND\s*NOT\s*scope:\("TEXT"\)'>
                        <xsl:matching-substring></xsl:matching-substring>
                        <xsl:non-matching-substring>
                   <xsl:value-of select="replace(replace(.,'AND \(scope:.*?\)',''), 'AND facet_.*?:\(.*?\)', '')"/>
                        </xsl:non-matching-substring>
                </xsl:analyze-string>
    </xsl:template>

它工作正常,但我现在需要在<xsl:non-matching-string&gt;中包含另一个条件。是否可以在元素中包含OR条件,以便允许'AND facet_.*?:\(.*?\)''AND NOT facet_.*?:\(.*?\)'替换?

1 个答案:

答案 0 :(得分:1)

您可以使用replace(., 'foo|bar', 'whatever')foo和/或bar子字符串替换为whateverreplace的第二个参数是正则表达式,因此|允许替代。