我有一个平面文件,如:
A 10
S 20
W A 20 10
S A 45 10
S W S 20 20 20 30
W A S 22 50 20 55
我想确保它格式正确,(以空格“”分隔) 只允许使用正则表达式:
anyword* then " " then (word*|numbers*)*
其中*
是任意数量的单词
但也有一个问题,
我正在做这样的事情,但不知道在哪里加入行验证
try {
input = new BufferedReader(new FileReader(new File(filename)));
String line = null;
while ((line = input.readLine()) != null) {
String[] words = line.split(" ");
if (words.length == 2) {
}
}
}
答案 0 :(得分:1)
这个正则表达式应该这样做:
^[a-z]+ (?:\d+|[a-z]+(?: \d+ \d+| [a-z]+(?: \d+){4}))$
我尽量让它尽可能短,但也许可以将它浓缩一点。这应该在启用区分大小写的情况下使用,或者您应该将所有[a-z]
更改为[a-zA-Z]
。
这是Rubular。