正则表达式 linux 路径,正则表达式-linux路径匹配

需求

注:此正则只用于规范linux路径格式。

linux路径支持很多的特殊字符,但是我们应该养成一个好的习惯:只用字母、数字、下划线的组合命名目录或文件。

如何使用正则表达式校验一个linux路径符合我们的格式要求呢?

格式要求:

必须'/'开头

字符串只允许字母、数字、下划线

正确格式如下

/data/

/home/conf123

/data/nginx_conf/

错误格式如下

nginx_conf/

/data//

/data/conf@#/

校验的表达式

^\/(\w+\/?)+$

在线测试地址

定义

正则表达式(regular expression):描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

正则表达式:就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。

使用场景

1.验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。

2.用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。

3.用来替换,比普通的替换更强大。

分析

用于校验上述格式的正确表达式

^\/(\w+\/?)+$

部分规则

正则表达式用到了很多字符,所以许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符 \ 放在它们前面。

用到的正则表达式的规则如下

字符

说明

^

匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。匹配输入字符串的开始位置。要匹配 '^' 字符本身,请使用 '\^'。

$

匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 '$' 字符本身,请使用 '\$'。

+

匹配前面的子表达式一次或多次。要匹配 '+' 字符本身,请使用 '\+'。

( )

标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 '\(' 和 '\)'。

\w

匹配所有的字母、数字、下划线的字符

?

匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 '?' 字符,请使用 '\?'。

分析正则

前后使用了 '^' 和 '$' ,代表这里要校验整个字符串(从字符串开头到结尾)。

接下来 '\/'字符 ,这里用了斜杆转译,代表要以 / 开头。

使用 '()'将子表达式写在括号内。

括号内的表达式:'\w+',匹配出现一个或多个字母、数字、下划线的字符。'\/?',匹配斜杠,可有可无。

括号外的+号,匹配括号内的规则,一次或者多次。

将上述分析总结:校验整个字符串 -> 以斜杠开头 + ((一个或多个字符串 + 可有可无的斜杆)* n(大于0)次) 。

思考

以上正则是一定以斜杆开头的,不允许使用相对路径,那如果我们想支持斜杠开头可有可无,应该怎么写这个正则呢?

感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章开头给出原文链接。

JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫

JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接 ...

SpringMVC路径匹配规则AntPathMatcher

前言 本文是基于Spring Framework 4.3.3分析. 正文 SpringMVC的路径匹配规则是依照Ant的来的. 实际上不只是SpringMVC,整个Spring框架的路径解析都是按照A ...

Srping MVC ant路径匹配

背景 最近有一个功能设计path匹配,开发说支持ant匹配,这是我第一次听说这个词,赶紧补一下功课. Ant匹配规则 1.前言 (1)SpringMVC的路径匹配规则是按照Ant来的,实际上不只是Sp ...

C#正则表达式Regex常用匹配

使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 利用Regex类实现验证 示例1:注释的代码所起的作用是相同的,不过一个是静态方法,一个是 ...

SpringMVC常用注解,返回方式,路径匹配形式,验证

常用注解元素 @Controller 标注在Bean的类定义处 @RequestMapping 真正让Bean具备 Spring MVC Controller 功能的是 @RequestMapping ...

Java中windows路径转换成linux路径等工具类

项目中发现别人写好的操作系统相关的工具类: 我总结的类似相关博客:http://www.cnblogs.com/DreamDrive/p/4289860.html import java.net.In ...

JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分)

JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分) 1.匹配属性的开头 $("[attributeName^='value']"); 2.匹配属性的结尾 ...

Struts 之 通配符 路径匹配 常量用法 配置默认值

Struts 框架学习 Action的开发的几种方式 方式1 : 继承ActionSupport     如果使用Struts校验功能,必须继承此类 方式2 : 实现Action接口 方式3 :不继承 ...

js正则表达式 URL格式匹配详解

0.URL格式 protocol :// hostname[:port] / path / [;parameters][?query]#fragment [;parameters]没见过 这里就不做相 ...

随机推荐

Swift与C#的基础语法比较

背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

ABP框架Web API跨域问题的解决方案

​1.在Web Api 项目下安装 Microsoft.AspNet.WebApi.Cors 包 Install-Package Microsoft.AspNet.WebApi.Cors 2.在Web ...

疑难杂症:org.hibernate.MappingException: Unknown entity,annotation配置Entity类报错

引言: 夜声人静,外面下着稀里哗啦的雨,周末的晚上,还在键盘上舞动手指. 此刻很感激一个人一篇随笔,感谢xiaochao以及他的

Head First 设计模式系列之二----备忘录模式(java版)

申明:这几天无意中关注到备忘录模式,比较陌生回家一番参考书,只在附录里记录了该模式.后来在园子里有发现了有专门写设计模式的博客,并且写的也得牛逼.附上链接 http://www.cnblogs.com ...

注意WPF中绑定使用的是引用类型

绑定(Binding)是WPF提供的一个非常方便的特性,它可以方便的实现一个WPF的MVVM结构. 既可以实现数据驱动UI变化,也可以做到End-user在UI上的修改实现的反映到数据上. 但是有一点 ...

HTML标记语言和CSS样式的简单运用(Nineteenth Day)

曾经励志下去要坚持把每天所学的知识记录下来,可是坚持了几天后,就觉得自己坚持不下去了....这几天自己好好的想了想,觉得不能坚持也得要坚持,因为要对自己负责,所以得学会逼着自己去做,只有这样才能把一件 ...

Chrome 插件集锦

原文出处:CN_Simo 子曾曰:"工欲善其事,必先利其器.居是邦也."--语出:其后一百多年,荀子也在其中倡言道:"吾尝 ...

[PHP] 网盘搜索引擎-采集爬取百度网盘分享文件实现网盘搜索

标题起的太大了,都是骗人的.最近使用PHP实现了简单的网盘搜索程序,并且关联了微信公众平台.用户可以通过公众号输入关键字,公众号会返回相应的网盘下载地址.就是这么一个简单的功能,类似很多的网盘搜索类网 ...

day4 liaoxuefeng---模块

一.模块 二.常用内建模块 三.常用第三方模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值