0
点赞
收藏
分享

微信扫一扫

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】


📃文章目录

  • ​​📚简介:​​
  • ​​📝正则在线​​
  • ​​💨教学时间:​​
  • ​​💌举例:​​
  • ​​🎊语法参考​​
  • ​​✨匹配文件不允许包含的符号​​
  • ​​🚀程序测试正则​​
  • ​​🍥结束:​​

📚简介:

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_开发语言

       使用程序对网络视频进行下载,通常他们的标题可能都会含有windows文件名称不允许的符号,正是如此,一开始还没有意识到这个问题,开始爬取数据才发现程序报错了​​文件名、目录名或卷标语法不正确。​​这时我才想起来这个问题…

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_数据_02


       那既然这样我们就开始修改代码使用字符串的​​replaceAll​​方法,由于用该方法给定的替换值可以是正则表达式,用于匹配的每个子字符串,替换视频中的违规符号,由于我对正则公式又不太熟,毕竟怎么多东西要学习,小脑袋瓜子记不下那么多,记了也会忘下一次什么时候可以用的上呢~偷笑

📝正则在线

       在线正则表达,我们可以在网址中自己填写正则表达式并且可以得到验证,验证成功则表示我们程序中就可以使用,万无一失!

​​网址​​ 界面样式如图:

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_windows_03

💨教学时间:

       从图中我们可以看出​​第一个输入框​​​填写我们的​​正则表达​​​, ​​第二个输入框​​​用于输入我们​​需要被验证的信息​​​,​​第三个输入框​​​则是 显示我们的数据有没有被匹配上,被​​匹配上的数据会高亮显示​

💌举例:

输入的只能是数字才能被匹配上正则为:​​^[0-9]*$​

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_windows_04


如果传入的参数是带英文的还能被匹配上吗?

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_java_05


可以看出并没有被匹配上.

网站下拉可以​​看到常用的表达式​​已经举例出来了

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_数据_06

如果没有找到也没关系,网站有语法参考

🎊语法参考

我们可以点击​​语法参考​

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_java_07

来匹配自己需要的正则表达式.

✨匹配文件不允许包含的符号

我们已经知道了,windows系统文件名称不能包含​​\ / : * ? " < >| ​​那么我们在参考语法规则.

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_数据_08

​正向预查模式​​就是找到我们自己定义的expr数据

(?=expr) -

​注意​​​:由于​​\​​​反斜杠有些特殊使用需要​​使用双斜杠表示​​ 最终正则表达就是:

[?=/?:\\"*<>|]+

从图中可以看出文件不能包含的字符都已经被匹配上高亮显示了

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_数据_09


那我们如果标题里面的汉字会不会被匹配上呢?

       可以看出需要验证的数据中​​\ / : * ? " < 我是月饼侠>|​​​ ​​我是月饼侠​​​并没有被高亮显示,因为他本来就​​不在匹配的正则中​​那么该正则可以在软件中使用

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_正则_10

🚀程序测试正则

​注意​​​:由于​​\​​​反斜杠有些特殊使用需要​​使用双斜杠表示​

main(String[] args) {
//视频标题包含 < > 符号我们需要过滤
String cd="#月饼制作 #月饼 爱吃爱喝爱生活<美滋滋>#农村美食 #抖音美食推";
System.out.println(cd.replaceAll("[?=/?:\\\\\"*<>|]+",""));
}

运行结果:

可以看出违规符号已经被替换成空了

Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】_正则_11

🍥结束:

到这里保存文件解决文件名称不合法的方式到这里就完成了,如果对你有帮助,一键三连,一起加油!!!


举报

相关推荐

0 条评论