我正在尝试将验证实用程序添加到我已创建的程序中。该实用程序将分析文件以确保其符合适当的参数。我已完成第一行的分析,并遇到有关空白的问题。我用于测试的文件包括以下行:
1459875655257 05112345678945612345678941EMMAM BANK OF AMERICA, NA BAC
测试此行并产生问题的代码块如下:
if(immediateDestName.isEmpty()){
JOptionPane.showMessageDialog(null,
"ERROR: File header immediate destination name is missing!");
} else {
if((sCurrentLine.substring(40,63)).matches("A-Za-z0-9 ]+")){
}else{
JOptionPane.showMessageDialog(null,
"ERROR: File header immediate destination name is invalid: "
+sCurrentLine.substring(40,63));
}
}
当我运行验证实用程序时,它会弹出JOptionPane,表明该名称无效。仅供参考,实际的子串是EMMAM,后跟一堆空格(因此问题)。
有人可以帮我弄清楚为什么我的程序会标记此警报,即使从所有我可以看到子字符串匹配正则表达式?
答案 0 :(得分:3)
使用
if (sCurrentLine.substring(40,63).matches("[A-Za-z0-9 ]+")) { .. }
我相信你错过了第一个支架。这将匹配A-Z
,a-z
,0-9
或空格中的任何字符。