Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式Java允许数字、字母、特殊字符(部分)_Java_Regex - Fatal编程技术网

正则表达式Java允许数字、字母、特殊字符(部分)

正则表达式Java允许数字、字母、特殊字符(部分),java,regex,Java,Regex,我有一个文件名,比如upload 23_3.jpg。我只允许字母、(.)句号、()海彭符号、下划线 ^意思不是a-z,字母和我加了uu和。,但它不起作用。知道如何添加''.''-'字符吗?您可以直接将这些字符添加到字符类的末尾 Pattern p = Pattern.compile("[^a-z0-9_. -]", Pattern.CASE_INSENSITIVE); 您可以直接将这些字符添加到字符类的末尾 Pattern p = Pattern.compile("

我有一个文件名,比如upload 23_3.jpg。我只允许字母、(.)句号、()海彭符号、下划线


^意思不是a-z,字母和我加了uu和。,但它不起作用。知道如何添加''.''-'字符吗?

您可以直接将这些字符添加到字符类的末尾

Pattern p = Pattern.compile("[^a-z0-9_. -]", Pattern.CASE_INSENSITIVE);

您可以直接将这些字符添加到字符类的末尾

Pattern p = Pattern.compile("[^a-z0-9_. -]", Pattern.CASE_INSENSITIVE);
不确定“^”在做什么。我想您想删除它

您需要用斜杠转义特殊字符。我认为只有“.”应该转义,并且u不需要转义

尝试: [a-z0-9.]

-和-对CASE不敏感有一个问题,考虑Topn.UnoDeION情况。或者不考虑任何情况下的标志,并添加一个A.Z.< 尝试: [A-Za-z0-9-。],没有案例提示

不确定“^”在做什么。我想你想把它去掉

您需要用斜杠转义特殊字符。我认为只有“.”应该逃走,而且不需要逃走

尝试: [a-z0-9.]

和-对CASE不敏感有一个问题,考虑Topn.UnoDeDyCase.或者不考虑任何情况下的标志,并添加一个A.Z.< 尝试: [A-Za-z0-9_-。],不区分大小写

使用
模式。编译(“[\\w\\s.-]+”)
m.matches()

Pattern p=Pattern.compile(“[\\w\\s.-]+”);
Matcher m=p.Matcher(i.getFileName());
布尔值isValid=m.matches();

解释

[\w\s.-]+以下任意字符:字字符(a-z,a)-
Z、 0-9、\u1)、空白(\n、\r、\t、\f、,
及“)、”及“-”(1次或以上)
(匹配尽可能多的金额)
使用
模式。编译(“[\\w\\s.-]+”
m.matches()

Pattern p=Pattern.compile(“[\\w\\s.-]+”);
Matcher m=p.Matcher(i.getFileName());
布尔值isValid=m.matches();

解释

[\w\s.-]+以下任意字符:字字符(a-z,a)-
Z、 0-9、\u1)、空白(\n、\r、\t、\f、,
及“)、”及“-”(1次或以上)
(匹配尽可能多的金额)

我试过了,但当文件名在it@user3508506它不能使用的文件名是什么?@user3508506另外,false表示未找到不允许的字符。“ucal 213_334.jpg”显示为true,尽管有一个有效字符。还有!。是regexp中的一个特殊字符。你必须掩盖它。您的表达式应该像“[^a-z0-9\\\.-]”我尝试过,但当文件名中有uu时,它说布尔值为falseit@user3508506它不能使用的文件名是什么?@user3508506另外,false表示未找到不允许的字符。“ucal 213_334.jpg”显示为true,尽管有一个有效字符。还有!。是regexp中的一个特殊字符。你必须掩盖它。您的表达式应该像“[^a-z0-9\\\.-]”我强烈建议您使用此工具:^引用整个正则表达式,您为什么还要使用它?至于连字符,
-
,它必须是类中的第一个。您应该提供一些有效和无效名称的示例。
..
--
-
-\u
-.\u
也是有效名称吗?我强烈建议您使用此工具:^引用整个正则表达式,您为什么还需要它?至于连字符,
-
,它必须是类中的第一个。您应该提供一些有效和无效名称的示例。
..
--
-
-\u
-\u
是否也是有效名称?