Regex XTDE1150:正则表达式不能与零长度字符串匹配

Regex XTDE1150:正则表达式不能与零长度字符串匹配,regex,xslt-2.0,Regex,Xslt 2.0,我试图在xsl中将正则表达式与字符串匹配。无论哪个字符串匹配,我都将其添加到div中 这是消息值——“102-36.85-主要部分:处理我” 如果正则表达式仅为^([0-9]),则匹配第一个数字。但我想把这一切都匹配起来。(102-36.85). 这里有什么问题?我测试了这个正则表达式,它很好 <xsl:analyze-string select="$messageValue" regex="^([0-9\-\.]*)

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

这是消息值——“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>```

```
您可以使用

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

它将匹配一个

  • ^
    -以开头
  • [0-9]+
    -1位或更多数字
  • ([.-][0-9]+)*
    -然后包含0个或更多重复的
    -
    ,然后是1+位
或者,您可以修复正则表达式,如
^[0-9.-]+
:字符串开头的任何1个或多个数字、点或连字符