java - 正则表达式 - 包括字符串 : java

标签 java regex pattern-matching

我试图从文件中打印出与 java 中的特定模式匹配的行。 我正在使用 Pattern 类来执行此操作。

我尝试将 patter 设为“[harry]”,以便打印出包含“harry”的每一行。 但是 pattern 总是评估为 false。 我的假设是我输入的正则表达式模式是一个字符串。

我的代码如下:

try {

      BufferedReader br = new BufferedReader(new FileReader("test.txt"));
      Pattern p = Pattern.compile("harry");
      String str = null;
      try {
        while((str = br.readLine())!=null){
          Matcher match = p.matcher(str);
          boolean b = match.matches();
          if(b){
            System.out.println(str);
          }
        }
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }

请帮忙。我不明白代码在哪里中断。我正在尝试不同的模式匹配,但这是正确的方法吗?

谢谢

最佳答案

问题是 Matcher.matches 必须匹配整个字符串。使用 Matcher.find,或更改您的模式以允许前导字符和尾随字符。

Pattern p = Pattern.compile(".*harry.*");

关于java - 正则表达式 - 包括字符串 : java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818514/

相关文章:

java - Java 中的 vector 距离计算 - 优化

java - 如何替换字符串中的多个子字符串实例

python - 将字母转换为小写

scala - Scala中通用类型的模式匹配

mysql - 在将数据插入表之前,是否在 MySQL 端进行模式匹配?

c# - 应用程序如何在 .NET 或 Java 中使用多个内核或 CPU?

Java将所有名称写入csv文件

java - spring boot data jpa连接不上mysql数据库

javascript - 正则表达式: JQuery check

performance - 模式下的 unwrap()s 是否被优化掉了?