Java 允许方括号的正则表达式
下面是我的代码,它允许特殊字符,数字,字符(上限和下限)。这个程序运行良好。我的问题用方括号括起来Java 允许方括号的正则表达式,java,regex,Java,Regex,下面是我的代码,它允许特殊字符,数字,字符(上限和下限)。这个程序运行良好。我的问题用方括号括起来 public class MatchingSpecificCharacters { public static void main(String[] args) { String reg = "[A-Za-z0-9!$-~`?/@#%^*&()_+=<>.,';:|\" ]*"; String line = "as[]d";
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));
}
}
公共类匹配特定字符{
公共静态void main(字符串[]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!$\\-~`?/@%^*&()\+=,”;:\\“]*”;
^
或者把它放在最后
String reg = "[A-Za-z0-9!$~`?/@#%^*&()_+=<>.,';:|\" -]*";
String reg=“[A-Za-z0-9!$~`?/@%^*&()+=,”;:“\”-]*;
这是正则表达式所匹配的(您定义的范围是从$
到~
),而不是连字符):
由于您使用的是连字符,因此可以对其进行转义或将其作为范围中的第一个或最后一个字符:
[-a-z]
或[a-z-
]
否则,[A-Za-z…$-~…\”]
将尝试匹配所有给定字符以及在$
和~
之间的所有内容,您可以在中看到这些内容
另见:
匹配连字符[-]
匹配[abc-]
、a
、b
或连字符c
匹配[-abc]
、a
、b
或连字符c
匹配[ab-d]
、a
、b
或c
(此处仅连字符表示字符范围)d
永远不要转义连字符,因为它不是特殊字符。在某个范围内使用时,请将其放在开头或结尾,以避免与范围格式匹配。您提供的键盘不是普通键盘。可以提供键盘的完整图片。(我不知道它是否是键盘)。请详细说明,它对其他人也有帮助。它不是键盘,而是一个键盘,它是键盘的一部分。Regex正在使用Unicode代码点表解析中的字符范围。