java 是用正则表达式对文件名非法字符处理

1.文件名在操作系统中不允许出现  / \ " : | * ? < > 故将其以空替代
        Pattern pattern = Pattern.compile("[\\s\\\\/:\\*\\?\\\"<>\\|]");
        Matcher matcher = pattern.matcher(fileName);

  fileName= matcher.replaceAll(""); // 将匹配到的非法字符以空替换

  2.在创建文件前,对文件名进行合法性校验

  fileName.matches("[^\\s\\\\/:\\*\\?\\\"<>\\|](\\x20|[^\\s\\\\/:\\*\\?\\\"<>\\|])*[^\\s\\\\/:\\*\\?\\\"<>\\|\\.]$");

时间: 2024-08-11 07:39:12

java 是用正则表达式对文件名非法字符处理的相关文章

java中的正则表达式(一)

最近在学习springMVC的源码并尝试从零开发一下web框架.在学习用遇到了一个拦路虎————正则表达式.在我平时的开发工作中对于正则表达式的使用并不是很频繁,可以说是几乎不用,即使用到了都是通过上网百度查询,久而久之正则表达式成了我的短板(虽然这块短板还没有影响我的工作).在看了springMVC的框架后发现,其实正则表达式在封装框架中起着至关重要的作用,因此熟练的掌握正则表达式可以帮助我们学习底层的代码逻辑. 正则表达式:是一串字符,它描述了一种文本模式.这句话取自java编程的逻辑.正则

[C/C++标准库]_[初级]_[过滤Windows文件名中的非法字符]

场景: 1. 通常生成文件时需要一个文件名,而生成文件名的方式可能是通过用户输入的字符,但是有些字符在windows上是不能作为文件名的,强行创建这类文件会失败. 2.一般可以通过正则表达式替换所有的非法字符,这里实现的是C++98 template(模板)方式的替换无效字符,std::string,std::wstring. 基本上windows上和字符串打交道都离不开wstring. 函数: template<class T> void FilterInvalidFileNameChar(

过滤Windows文件名中的非法字符

转载:http://blog.csdn.net/infoworld/article/details/42033097 场景: 1. 通常生成文件时需要一个文件名,而生成文件名的方式可能是通过用户输入的字符,但是有些字符在windows上是不能作为文件名的,强行创建这类文件会失败. 2.一般可以通过正则表达式替换所有的非法字符,这里实现的是C++98 template(模板)方式的替换无效字符,std::string,std::wstring. 基本上windows上和字符串打交道都离不开wstr

java 非法字符过滤 , 半角/全角替换

java 非法字符过滤 , 半角/全角替换 package mjorcen.netty.test1; import java.io.UnsupportedEncodingException; public class CharByteConverter { /** * 全角转半角 * * @param str * @return * * @author mjorcen * @email [email protected] * @dateTime Sep 27, 2014 2:51:50 PM *

maven编译java代码报“非法字符: \65279 ”错误的解决方法

前段时间开发一个项目,使用maven进行编译时报“非法字符: \65279 ”,但是眼睛看怎么都正确的,文件转成utf-8编码还是报错. 最后没办法,暴力解决了这个问,步骤如下 1.把文件内容复制出来,我是复制到Sublime Text2里面. 2.删除原文件. 3.创建一个新的java文件,并将复制出去的文本粘贴回来.搞定. 最后查了一下,还是很多人遇到这个问题了,而且也有人解答了产生的原因. 这篇文章解答了产生的原因,也给出了另外两种解决方法 http://blog.163.com/[ema

IDEA启动项目报错:Error:(1, 1) java: 非法字符: &#39;\ufeff&#39;

1. 报错信息 IDEA导入支付宝支付测试Demo启动报错,报错信息如下: Error:(1, 1) java: 非法字符: '\ufeff'Error:(1, 10) java: 需要class, interface或enum 经测试,MyEclipse并没有报同样的错误信息. 2. 解决方法 在IDEA右下角将编码改为GBK,再转为UTF-8,可以解决. IDEA启动项目报错:Error:(1, 1) java: 非法字符: '\ufeff' 原文地址:https://www.cnblogs

正则表达式中的特殊字符 字符 含意

JS正则表达式大全(整理详细且实用) 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*". ^ 匹配一个输入或一行的开头,/^a/匹配&quo

Java进阶 九 正则表达式

java正则表达式 序 由于项目中使用到了利用正则表达式进行表单的校验,回想一下正则表达式的内容,忘得也差不多了,俗话说:"温故而知新,可以为师矣".今天就简单的温故一下正则表达式,希望可以获得新的收获. 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表

java 中的正则表达式

一. 什么是正则表达式? 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”).模式描述在搜索文本时要匹配的一个或多个字符串. 二.正则表达式语法参考: https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx.    三.  正则表达式规则的例子: /^(/d{3}-|/d{4}-)?(/d{8}|/d{7})?$/    //国内电话 /^[1-9]*[1-9][0-9]*$/