java - 正则表达式检查字母表中的所有字母

标签 java regex expression replaceall

我目前正在温习我的编码技能并解决我在网上发现的一些简单问题。具体任务是输入一个包含任意行数的 txt 文件,并让程序检查每一行并根据该行是否包含字母表的所有 26 个字母返回“True”或“False”。我觉得我快完成了,但是无论我做什么,将字符串与 [a-z] 匹配的正则表达式都会返回 false。我尝试将字符串更改为小写,删除空格,但似乎没有任何效果。

Here's a link to the project as well.

我的文本文件中当前的文本是“敏捷的棕色狐狸跳过了懒狗。”

package easy139;


import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;


public class easy139 {

    public static void main(String[] args) {
        try {
            Scanner in = new Scanner(new FileReader("input.txt"));
            while (in.hasNextLine()) {
                String line = in.nextLine();
                System.out.println(line);
                String noSpaces = line.replaceAll(" ","");
                if (noSpaces.matches("[a-z]")) {
                    System.out.println("True");
                }
                else {
                    System.out.println("False");
                }
            }
            in.close();
        } catch (IOException e) {
        }
    }
}

最佳答案

您的测试返回 false,因为正则表达式 [a-z] 表示“恰好是一个字母”。

String.matches()一起使用的正则表达式是:

(?i)(?=.*a)(?=.*b)(?=.*c)...(?=.*z).*

这对每个字母使用一次展望,每个字母都断言该字母存在。 (?i) 开关打开不区分大小写。

关于java - 正则表达式检查字母表中的所有字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23110334/

相关文章:

javascript - 正则表达式查找字符串中的十进制数字

python - 字符串到(可能的)整数。错误处理 : Filter with regex or try. ..catch?

function - 包装到带有进度条的FOR循环

c++ - 为什么在构造字符串时 `std::istreambuf_iterator<char>`被视为函数声明?

java - 找不到 gl_MultiTexCoord0 替代品

java - 灰熊不记录请求中的异常

java - 匹配java中字符串的模式

c# - Expression<Func<T,bool>> 声明是什么意思?

java - Camel/Spring 无法识别正确的重载方法

java - 如何径向移动图片?