【问题标题】:Read file line by line and do regex validation逐行读取文件并进行正则表达式验证
【发布时间】:2017-11-16 14:13:17
【问题描述】:

通过正则表达式逐行验证导入的文本文件是否与此文本块匹配的正确方法是什么

  • 标题:编码所需的努力
  • Y标签:努力
  • XLabel:线条
  • XStart: 0
  • XInterval: 2500
  • 0、100、200、400、700、1024

例如:我尝试使用此正则表达式语法检查第一行,即(标题:编码所需的努力)但表达式不正确

 public Boolean fileValidation(String input){
    boolean bool = input.matches("^Title(?=.*:) [a-zA-Z]");
    
    
     if(bool){
         JOptionPane.showMessageDialog(this, "Valid File", "Valid", JOptionPane.INFORMATION_MESSAGE);
     }else{
         JOptionPane.showMessageDialog(this, "Invalid File", "Invalid", JOptionPane.ERROR_MESSAGE);
     }
     return bool;
    
}

这是我逐行读取选定文本文件的代码

try {
        Scanner scan = new Scanner(file);
        
        String info = "";
        
        while(scan.hasNext()){
            
            info += scan.nextLine() + "\n";
            readtxt.setText(info);
            fileValidation(info);
            
        }
        
    } catch (Exception e) {
        e.printStackTrace();
    }

【问题讨论】:

  • 在我看来,所有的行都是有效的。
  • 究竟需要验证什么?什么匹配或不匹配?你尝试了什么?
  • If (bool == true) ...else if (bool == false) 至少这可以写得更好。
  • 我是编程新手

标签: java regex validation delimiter


【解决方案1】:
String s = "Title: Effort required for coding";

System.out.println(s.matches("^Title(?=.*:): [a-zA-Z ]+"));

字符串其余部分的空格和 + 缺失。

【讨论】:

    猜你喜欢
    • 2015-02-21
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 2021-01-08
    • 2014-12-25
    • 2014-04-21
    • 2020-12-03
    相关资源
    最近更新 更多