regex - 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>```
解决方案
您可以使用
^[0-9]+([.-][0-9]+)*
请参阅正则表达式演示。
它将匹配一个字符串
^
- 以。。开始[0-9]+
- 1 位或多位数字([.-][0-9]+)*
- 然后包含 0 次或多次重复.
or-
然后 1+ 数字。
或者,您可以修复您的正则表达式,例如^[0-9.-]+
:字符串开头的任何 1 个或多个数字、点或连字符。
推荐阅读
- javascript - 数组在 useState 钩子工作后变成字符串
- flutter - Dart Flutter中实现抽象类的父类如何拆分?
- r - 如何根据 r 中的下一行对齐日期?
- vue.js - Vuejs 3:防止编译纯 HTML 标签
- datastore - 数据存储过滤器数组字段
- databricks - 初始化脚本中的数据块秘密
- html - megamenu动态内容的Angular 12问题
- apache-spark-sql - 如何在 spark sql 中以 yyyyMMddHHmmss 格式从 yyyy-MM-dd HH:mm:ss 数据转换时间戳数据类型列
- toloka - 向界面添加按钮
- regex - 来自 websocket 的数据包的正则表达式