我有一个正则表达式,当我在这样的网站上测试它时可以正常工作:http://java-regex-tester.appspot.com/。但是,在我的代码中,它不起作用。有什么建议吗?
目标文字: \ vdiarctest12 \ test \ 2014 \ Trad 2014Q1 \ Step 1 \ United_Traditional_v2306_03_18_2014_1340.pfd
陷入Java:
if (!arcvalFileFormBean.getTxtFileReview().matches("^([A-Za-z]):.*")) {
if (!arcvalFileFormBean.getTxtFileReview().matches("\\\\vdiarc.*[0-9]\\.*")) {
status = "MAPPING ERROR: Please submit a file from a mapped drive (i.e. K:\\).";
request.setAttribute(FairValConstants.status, status);
throw new InvalidFileMoveException(FairValConstants.MAKE_VALID_SELECTION);
}
}
我的代码检查bean 中的文本是否与正则表达式匹配。当我测试表达式时,它会找到所有内容,所以通过放置!在它之前,我会认为它会以我想要的方式工作。
建议? 谢谢!
修改
更改了我的代码,抱歉格式化。这是我的正则表达式的目的。我的用户正在提交文件,他们可以使用映射的驱动器或输入位置\\vdiarctest01\test\
等。我正在检查他们是否提交了映射驱动器,如果没有检查他们是否输入了,如果不要抛出错误。否则继续。
答案 0 :(得分:3)
这是错误:
\\\\vdiarc.*[0-9]\\.*
^^
您可以在\\
.
或者您可以在.
\\.
所以它将是
\\\\vdiarc.*[0-9]\\..*
答案 1 :(得分:0)