regex Java正则表达式到XML

vxf3dgd4  于 2023-08-08  发布在  Java
关注(0)|答案(2)|浏览(92)

我在java中做了以下正则表达式:

(^(?!\\s+$).*[^\\/:*?\"<>|]+(\\.(?i)(txt|rtf|doc|docx|htm|html|pdf))$)

字符串
但是我需要在xml模式中使用它,所以我已经更改为:

(^(?!\s+$).*[^\/:*?\&quot;&lt;&gt;|]+(\.(?i)(txt|rtf|doc|docx|htm|html|pdf))$)


但它的版本是接受文件与未列出的扩展名。怎么了?

jq6vz3qz

jq6vz3qz1#

你的正则表达式不应该匹配任何东西:首先,“^”和“$”不是XSD正则表达式方言中的元字符,它们匹配文字“^”和“$”字符。这里还有许多XSD正则表达式不允许的其他构造。但是,您可能正在使用一个模式处理器,比如Microsoft的模式处理器,它可以自己处理自己的事情,而不是遵循W3C规范。
如果您描述您的需求,而不是要求我们通过逆向工程复杂的正则表达式来解决它,对我们来说会更容易。不要忘记您可以指定多个模式。如果只想要求指定的扩展之一,只需使用
第一个月

vsnjm48y

vsnjm48y2#

仅针对.xml文件扩展名匹配,我将正则表达式作为字符串参数发送,如下所示,

String xmlRegex=new String(".*\\.(xml)");

字符串
并如下进行验证,

boolean matched = MatcherUtil.match( xmlRegex, filename );


如果匹配,则返回true,否则返回false。

相关问题