我在SoapUI断言中使用XPath Match来验证我的XML响应。我坚持使用正则表达式 - 无法验证此标记:
<bookValue>0.00</bookValue>
我的XPath匹配如下所示:
matches(//bookValue, "^[0-9.]$")
但它总是让我回复&#34;假&#34;。也许点符号有问题?
答案 0 :(得分:1)
您的正则表达式不正确。请尝试以下
^[0-9]+\.[0-9]{2}$
请注意,在方括号内使用点不适合您的情况,因为[0-9.]
会匹配数字或点,而+
添加[0-9.]+
可能会匹配...1.2.3.4.
之类的内容我想这不是你想要的
P.S。正如@Michael Kay正确注意到的那样:方括号内的点只匹配点(.
),而在外面则表示任何字符。如果要匹配方括号外的点字符,则需要使用反斜杠作为转义符号(\.
)
答案 1 :(得分:1)
您的正则表达式匹配包含单个字符的任何字符串,该字符必须是数字或点。你的错误是不允许重复:它应该是"^[0-9.]+$"
。
(注意,&#34;。&#34;在方括号内匹配&#34;。&#34;,它不是通配符)。
但请注意,验证该值的更好方法是X castable as xs:decimal
。例如,不允许有几个小数点。