Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 正则表达式XSLT,提取匹配_Regex_Xslt - Fatal编程技术网

Regex 正则表达式XSLT,提取匹配

Regex 正则表达式XSLT,提取匹配,regex,xslt,Regex,Xslt,我正在使用XSLT2.0并尝试提取所需的caracterer正则表达式 我用tokenize()进行了尝试,但更令人费解 <xsl:value-of select="tokenize('2.0-Cloverleaf-3d', '-')" /> 结果为:2.0,返回的结果为:3。字符串为(2.0-立体-*3*d) 我更喜欢这样做: <xsl:if test="matches(x:td/x:p, '.+3d$')"> true </xsl:if

我正在使用XSLT2.0并尝试提取所需的caracterer正则表达式

我用tokenize()进行了尝试,但更令人费解

  <xsl:value-of select="tokenize('2.0-Cloverleaf-3d', '-')" />

结果为:2.0,返回的结果为:3。字符串为(2.0-立体-*3*d)

我更喜欢这样做:

  <xsl:if test="matches(x:td/x:p, '.+3d$')">
    true
  </xsl:if>

真的
是否有任何函数可以在不需要“如果”的情况下获取所需的字符?。谢谢

编辑

我想我就这样离开吧

<xsl:variable name="places">
  <xsl:if test="matches(x:td/x:p, '.+3d$')">3</xsl:if>
  <xsl:if test="matches(x:td/x:p, '.+4d$')">4</xsl:if>
  <xsl:if test="matches(x:td/x:p, '.+5d$')">5</xsl:if>
</xsl:variable>

3.
4.
5.

但是如果有更好的方法的话。谢谢。

您可以使用“替换”,用您需要的零件替换所有部件

在XPath 2中:

replace(x:td/x:p, '^.*([0-9])d$', '$1')
在XSL中:

<xsl:value-of select="replace(x:td/x:p, '^.*([0-9])d$', '$1')" /> 

您可以使用“替换”,用所需的零件替换所有部件

在XPath 2中:

replace(x:td/x:p, '^.*([0-9])d$', '$1')
在XSL中:

<xsl:value-of select="replace(x:td/x:p, '^.*([0-9])d$', '$1')" /> 

您可以使用
tokenize()
执行此操作,但首先将令牌收集到变量中

<xsl:variable name="tokens" select="tokenize(x:td/x:p,'-')"/>

您可以使用
tokenize()
执行此操作,但首先将令牌收集到变量中

<xsl:variable name="tokens" select="tokenize(x:td/x:p,'-')"/>

您希望返回或获取什么字符?我想您只需要检查字符串是否以“3d”结尾,因为在2.0中我们还有一个函数,它是ends-with(),但它返回布尔值。如果你有固定的长度,你也可以使用substring()。我喜欢这样,以()结尾。谢谢。您想要返回或获得什么角色?我想您只需要检查字符串是否以“3d”结尾,因为在2.0中我们还有一个函数,它是ends-with(),但它返回布尔值。如果你有固定的长度,你也可以使用substring()。我喜欢这样,以()结尾。谢谢,这正是我需要的。谢谢:-)。这正是我需要的。谢谢:-)。