java - 验证文件java

标签 java regex

我有一个平面文件,例如:

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*)*

其中 * 是任意数量的单词
但还有一个问题,

  • 如果只有一个单词或字符,则只有一个数字
  • 如果有 2 个由“”分隔的单词或字符,则必须有 2 个由“”分隔的数字
  • 如果有 3 个单词或字符以“”分隔,则必须有 4 个数字以“”分隔

我正在做类似的事情,但不知道在哪里合并行验证

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) {

           }
     }  
 }

最佳答案

这个正则表达式应该可以做到:

^[a-z]+ (?:\d+|[a-z]+(?: \d+ \d+| [a-z]+(?: \d+){4}))$

我试图让它尽可能短,但也许可以再压缩一点。这应该在启用区分大小写的情况下使用,或者您应该将所有 [a-z] 更改为 [a-zA-Z]

这是一个Rubular .

关于java - 验证文件java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5415378/

相关文章:

Java字符串与通配符的匹配

c# - 使用正则表达式比使用 IndexOf 更快吗?

javascript - 用节点替换其中的大括号和文本

java - 在 Tomcat 6 上禁用 Oracle UCP 的自动提交

Java:无需强制转换即可获取子类的属性

java - NetBeans 6.5 中是否有可以运行的即时编译功能,效果如何?

java - 如何减少 3 个 Swing 复选框之间的空间?

javascript - 如何检查正则表达式中的@?

javascript - 如何使用 Javascript 正则表达式检测没有评论和 Markdown 的句子?

java - 如何在 Java GUI 中更新图像