首页 > 解决方案 > XTDE1150:正则表达式不能是匹配零长度字符串的表达式

问题描述

我试图将正则表达式与 xsl 中的字符串匹配。无论哪个字符串匹配,我都将其添加到 div 中。

这是 messageValue - “102-36.85 - 主要部分:处理我”

如果正则表达式只是 ^([0-9]),则匹配第一个数字。但我想匹配整个事情。(102-36.85)。这里有什么问题?我测试了这个正则表达式,它很好。

                    <xsl:analyze-string  select="$messageValue" regex="^([0-9\-\.]*)?">
                        <xsl:matching-substring>
                            <div class="firstSection"><xsl:value-of select="."/></div>
                        </xsl:matching-substring>
                        <xsl:non-matching-substring><xsl:value-of select="."/></xsl:non-matching-substring>
                    </xsl:analyze-string>```

标签: regexxslt-2.0

解决方案


您可以使用

^[0-9]+([.-][0-9]+)*

请参阅正则表达式演示

它将匹配一个字符串

  • ^- 以。。开始
  • [0-9]+- 1 位或多位数字
  • ([.-][0-9]+)*- 然后包含 0 次或多次重复.or-然后 1+ 数字。

或者,您可以修复您的正则表达式,例如^[0-9.-]+:字符串开头的任何 1 个或多个数字、点或连字符。


推荐阅读