gpt4 book ai didi

java - 为什么我的正则表达式匹配每个字符?

转载 作者:行者123 更新时间:2023-11-30 03:11:10 24 4
gpt4 key购买 nike

我想排除除字母和数字之外的任何字符,但是当我运行程序时,无论输入什么内容,我总是进入 while 循环。

System.out.println("Please enter the name of the next dancer");

while(!scan.hasNext("^[a-z0-9]+$/i"))
{

System.out.println("Please ensure you only enter letters of the alphabet and numbers bewteen 0 and 9");
scan.nextLine();

}
arrCelebs[celeb] = scan.next();

例如,我输入“a”,我得到 - System.out.println(“请输入下一个舞者的名字”);

如果我输入“%”也是一样

最佳答案

/i 不会使其忽略 Java 中的大小写,请使用:

"(?i)^[a-z0-9]+$"

或者简单地说:

"^[a-zA-Z0-9]+$"

您的方法中的另一个问题是,默认情况下 ^ 匹配文本的开头,而不是行的开头,因此如果您的第一个输入与正则表达式不匹配,那么下一个输入也无法匹配它,因为它不会出现在文本的开头。因此,要么让你的 anchor 与多行标志 (?m) 匹配行首,要么简单地删除 ^

关于java - 为什么我的正则表达式匹配每个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33615966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com