java对上传文件名特殊字符 正则表达式校验
时间: 2023-07-18 20:44:55 浏览: 153
可以使用以下正则表达式来校验上传文件名中的特殊字符:
```java
String regex = "[a-zA-Z0-9-_\\.]+";
```
这个正则表达式匹配文件名中的字母、数字、下划线、短横线和点号,其他特殊字符都将被排除。你可以在上传文件时使用这个正则表达式来校验文件名,如果文件名不符合要求,就提示用户重新输入。
相关问题
windows linux macos下文件名合法的正则表达式
在不同的操作系统中,文件名合法的正则表达式可能会有所不同。
Windows下文件名合法的正则表达式为:
```
^[^\\/:*?"<>|\r\n]+$
```
Linux和macOS下文件名合法的正则表达式为:
```
^[^/]+$
```
这个正则表达式的含义是:以任意字符开始,不包含正斜杠(/),以任意字符结束。这是因为在Linux和macOS中,正斜杠(/)被用作路径分隔符,不允许作为文件名的一部分。
需要注意的是,在不同的操作系统中,文件名的长度、字符集等限制也可能会有所不同,因此具体的正则表达式可能需要根据实际情况进行调整。
python 正则表达式校验文件名
以下是一个 Python 正则表达式校验文件名的示例:
```python
import re
filename = "example_file.txt" # 文件名
pattern = r'^[a-zA-Z0-9_\-]+\.[a-zA-Z0-9]+$' # 正则表达式模式
if re.match(pattern, filename):
print("文件名合法")
else:
print("文件名不合法")
```
解释:
- `^[a-zA-Z0-9_\-]+`:以字母、数字、下划线或破折号开头,且至少出现一次。
- `\.`:匹配一个点(即文件名与扩展名的分隔符)。
- `[a-zA-Z0-9]+$`:以字母或数字结尾,且至少出现一次。
如果文件名匹配正则表达式模式,则输出 "文件名合法",否则输出 "文件名不合法"。