Java 在primefaces中使用AllowType的regex可选
这是我的正则表达式,在本地java中,它可以工作,但当我试图将它放在p:fileUpload allowTypes上时,它不工作 我的目标是 1) “itrs”或“itrs”是必须的 2) “-draft”或“-draft”是可选的 3) “.csv”或“.csv”是必须的 我希望尽可能多地过滤文件名和文件扩展名 这是我的本地版本:(itrs-itrs)((-draft-draft)?)(\.\\/)(csv-csv)$您可以使用Java 在primefaces中使用AllowType的regex可选,java,regex,primefaces,Java,Regex,Primefaces,这是我的正则表达式,在本地java中,它可以工作,但当我试图将它放在p:fileUpload allowTypes上时,它不工作 我的目标是 1) “itrs”或“itrs”是必须的 2) “-draft”或“-draft”是可选的 3) “.csv”或“.csv”是必须的 我希望尽可能多地过滤文件名和文件扩展名 这是我的本地版本:(itrs-itrs)((-draft-draft)?)(\.\\/)(csv-csv)$您可以使用 allowTypes="/^(?:itrs|ITRS)(?:-d
allowTypes="/^(?:itrs|ITRS)(?:-draft|-DRAFT)?\.(?:csv|CSV)$/"
或者,如果dRaFt
和ItRS
也被接受,您可以使用i
不区分大小写的修饰符稍微缩短模式:
allowTypes="/^itrs(?:-draft)?\.csv$/i"
请注意此处使用的/
正则表达式分隔符。另外,请参见说明正则表达式分隔符使用的示例
注意:如果确实需要在
csv
之前匹配
或/
,请将\.
替换为[.\/]
基本上,您需要在regex分隔符中使用regex模式。见下面我的答案。在您的要求中,您没有提到在csv
之前可以有/
,因此我不在主正则表达式中使用它,但我在底部添加了一个注释。您好,Wiktor,如果您同意,请您在此详细解释正则表达式中发生了什么?包括为什么我必须注意“/”的用法事先谢谢Wiktor@Applegate这是你的正则表达式,我只是补充了一下i
不区分大小写(正如我已经写过的)<代码>(?:…)是(仅用于对模式进行分组,不用于保存和保留子匹配)。