XML 模式正则表达式空字符串

d.b*_*eve 4 regex xml xsd xmllint

我有一个带有正则表达式限制的 XML 架构,它匹配三个不同的选项,看起来与此类似:

somestring|someotherstring|
Run Code Online (Sandbox Code Playgroud)
  1. 一些字符串,或者
  2. 其他一些字符串,或者
  3. 空字符串

我的问题是 xmllint 不喜欢这个正则表达式。它给出以下错误:

正则表达式错误:编译失败:期待 | 之后有一个分支

由于环境的原因,我被迫遵守xmllint。

我的问题是,在 XSD 中使用正则表达式匹配空字符串还有哪些其他选项?

据我了解,XSD 正则表达式中不提供负向预测,并且我对其他选项感到茫然。

Wik*_*żew 6

您可以使用可选组:

(somestring|someotherstring)?
^                          ^^ 
Run Code Online (Sandbox Code Playgroud)

它将匹配这两个单词或空字符串。在 XSD 中,所有模式都会自动锚定,因此不需要额外的运算符。

查看正则表达式匹配什么。