gpt4 book ai didi

java - 允许方括号的正则表达式

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

下面是我的代码,它允许特殊字符、数字、字符(大写和小写)。这个程序运行良好。我的方括号问题。

public class MatchingSpecificCharacters {
public static void main(String[] args) {

String reg = "[A-Za-z0-9!$-~`?/@#%^*&()_+=<>.,';:|\" ]*";
String line = "as[]d";

System.out.println(line.matches(reg));


}
}

输出

正确

在程序中,我用[]括号把所有字符、数字、特殊字符括起来。我没有使用额外的方括号作为特殊章程,但程序允许这样做。谁能告诉我为什么它允许方括号。如果我错了请纠正我。

最佳答案

您应该转义连字符。

String reg = "[A-Za-z0-9!$\\-~`?/@#%^*&()_+=<>.,';:|\" ]*";
^

或者放在最后

String reg = "[A-Za-z0-9!$~`?/@#%^*&()_+=<>.,';:|\" -]*";

这是您的正则表达式匹配的内容(而不是连字符,您定义了从 $~ 的范围):

enter image description here

关于java - 允许方括号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31921240/

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