java - 使用正则表达式检查字符串的开头是否与模式匹配

标签 java regex

我正在从 .txt 文件中读取行,并且需要检查每一行是否“有效”。

有效行以 -2 到 2 之间的数字开头(包括 -2 和 2),然后是一个空格,然后可能是文本。

  • “-1 这是有效的。”
  • “0也是这样”
  • “-2 和这个”
  • “2 和这个”
  • “-1这不是。”
  • “-23 也不是这个”

我想为此使用正则表达式,但无法使其正常工作。我对正则表达式很不熟悉。这是我的代码:

public static List<Sentence> readFile(String filename) {
        List<Sentence> sentences = new LinkedList<>();

        Pattern pattern = Pattern.compile("-[0-2] abc");
        Matcher matcher;
        try (BufferedReader br = new BufferedReader(new FileReader(filename))) {

            while (br.ready()){
                matcher = pattern.matcher(br.readLine());
                if (matcher.matches()){
                    System.out.print("matches ");
                }
            }

        } catch (IOException e){
            e.printStackTrace();
        }

        return sentences;

    }

这不起作用(毫不奇怪)。有人可以帮助我获得正确的正则表达式吗?

最佳答案

您可能正在寻找类似于以下内容的正则表达式:

^(0|-?[1-2]) .*

^ 符号匹配行的开头,(0|...) 匹配 0 或下面的表达式, -? 匹配 0 或 1 次出现 -[1-2] 匹配 1 或 2 个, 匹配空格,.* 匹配 0 个或多个除换行符之外的任何内容。

关于java - 使用正则表达式检查字符串的开头是否与模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470810/

相关文章:

python 正则表达式 日期格式 mm/dd

java - 寻找一种在速度模板中检索日期的方法

java HttpURLConnection.setRequestMethod() 不起作用

javascript - jquery/javascript 删除 HTML 标签但没有内容

regex - 匹配所有正则表达式模式,直到达到定界模式

Java 正则表达式 - 如何替换模式或如何

javascript - 计算每三周在网站上显示图像

java - 如何使用结果集从mysql中获取char数据类型

java - jsoup 中 element.children 的替代方案

PHP - 用于路由的正则表达式