基础正则表达式-入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guawawa311/article/details/82493255

开发之路,羊肠九曲,荆棘密布,幸得高人指点,前辈填坑,一路谨小慎微,终得工程圆满;其间填坑之经验,开路之历程,皆为精华,不可弃之;记录于此,以便事后回顾,亦想于有相关开发疑惑之同学做参考之用,文中如若有错,恳请雅正,不胜感激。

基本的正则表达式

在使用正则表达式的时候,我们可以很方便的完成一些字符串的操作,比如:验证、查找、替换、分割等等。

正则表达式主要有表达式(expressions)量词(quantifiers)、**断言(assertions)**组成。

表达式

最简单的表达式就是一个字符。

字符集可以使用表达式如“[AEIOU]”,表示匹配所有大写元音字母;“[^AEIOU]”则表示匹配所有非元音字母;还有“[a-z]”表示所有的小写英文字母。

量词

量词说明表达式出现的次数,如**“x[1,2]” ** 表示“x”可以至少出现一次,至多出现两次。

量词 含义
E? 匹配0次或1次
E+ 匹配1次或多次
E* 匹配0次或多次
E[n] 匹配n次
E[n,] 匹配至少n次
E[,m] 匹配最多m次
E[n,m] 匹配0至少n次,最多m次

断言

“^”、“$”、“\b”等都是正则表达式的断言

符号 含义
^ 表示在字符串开头进行匹配
$ 表示在字符串结尾进行匹配
\b 单词边界
\B 非单词边界
(?=E) 表示表达式后边紧随E才进行匹配
(?!E) 表示表达式后边不跟随E才进行匹配

例如:
“use(?=E\s+namespace)” 表示只有在use后边出现 namespace的时候才进行匹配

“use(?!E\s+namespace)” 表示只有在use后边不是 namespace的时候才进行匹配

“use\s+namespace” 表示匹配“use namespace”

示例-匹配邮箱

**匹配邮箱: ** [email protected]

邮箱名 **
主要是字母或者数字或者下划线中划线组成
这样表达式应该为:
[a-zA-Z0-9_-]+ **

域名 **
一般的域名或有多个分级域名,如“codeartisan.top”,'www.codeartisan.top",“vip.www.codeartisan.top”,
总结下来域名部分应该为
“*.*.*.*” ** 这样
表达式应该为:**[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+

**最终表达式: **
 邮箱的基本格式为“名称@域名”,需要使用“^”匹配邮箱的开始部分,用“$”匹配邮箱结束部分以保证邮箱前后不能有其他字符,所以最终邮箱的正则表达式为:

^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

猜你喜欢

转载自blog.csdn.net/guawawa311/article/details/82493255