XML中的通配符文件匹配

时间:2015-05-13 07:03:13

标签: java regex xml xsd glob

XML文件包含<Wildcard>标记

       <Wildcard>r_prior*.obj</Wildcard>

我想访问名为r_prior [0-9] .obj的文件,可能有一个文件r_prior_dummy.obj(我不需要),但是使用当前代码它也会使用r_ram_dummy.obj。

<Wildcard>的架构代码:

    <simpleType name="Wildcard">
      <restriction base="string">
        <pattern value="[^\\/]+"></pattern>
      </restriction>
    </simpleType>

我尝试了<Wildcard>r_prior[0-9].obj</Wildcard>,但它不起作用。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

这里似乎有两种 独立的 模式匹配类型:

  • 正则表达式xs:pattern中使用的XML架构。比文件globbing更具表现力;使用*来匹配零个或多个 前面的字符; ?可选地匹配前一个字符; 以及更多匹配的构造。
  • 文件通配:通常用于过滤文件列表的库。通常表达不如正则表达式;使用* 匹配任何角色; ?只匹配一个未知字符 (在某些情况下包括0个未知字符);等

假设您只能更改XML文件,则需要检查Java应用程序以查看它支持的文件globbing构造的类型。 (如果您有源,请查看正在进行的调用以过滤文件列表并检查其文档。)您可以假设支持*。例如,您不能假设支持[characters]

答案 1 :(得分:0)

也许你需要逃脱“。”

r_prior[0-9][.]obj

请参阅此处的工作示例:RegexR