ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

正则表达式

2019-08-26 13:40:04  阅读:229  来源: 互联网

标签:字符 匹配 正则表达式 转义字符 规则 字符串



title: 正则表达式

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式手册
正则表达式在线测试

正则表达式语法规则

一个完整的正则表达式有两部分构成,元字符和文本字符,元字符就是具有特殊含义的字符,如“*”,“?”,文本字符就是普通文本,如字母和数字等。一般都放在界定符“/”中间。

定界符(/)

在正则表达式中,/顺斜杠是表示表达式的开始和结束的“定界符”。\反斜杠是表示转义字符。

行定位符(^和$)


行定位符是用来描述字符串的边界。“^”表示行的开始;“$”表示行的结尾。

单词分界符(\b、\B)


\b是指匹配的字符串是一个完整的单词


\B意思与\b相反,是指匹配的字符串不是一个完整的单词,而是其他的单词或者字符串的一部分。

字符类([ ])

正则表达式是区分大小写的,如果要忽略大小写可使用方括号表达式“[]”。只要匹配的字符出现在方括号内,即可匹配成功。但是要注意:一个方括号只能匹配一个字符。

选择字符(|)

该字符可以理解为“或”

说明:使用“[]”和使用“|”的区别在于,“[]”只能匹配单个字符,而“|”可以匹配任意长度的字符串。

连字符(-)

变量的命名规则只能以字母和下划线开头。但这样一来,如果使用正则表达来匹配变量名的第一个字母,要写为**[a,b,c,d…A,B,C,D…]**
这无疑是非常麻烦的,正则表达式提供了连字符“-”来解决这个问题。连字符可以表示字符串的范围。如上可以写成**[a-zA-Z]**

排除字符([^])

上面的例子是匹配命名规则的变量。现在反过来。匹配不符合命名规则的变量,正则表达式提供了“^”,这个元字符在前面是开始的意思,而这里放在括号里面表示排除的意思

限定符(? * + {n,m})

点号字符(.)

如果遇到这样的试题:写出5~10个以s开头的,t结尾的单词,这是有很大难度的,如果考题不告知第一个字母,而是中间任意一个。无疑难度更大。
在正则表达式中,可以通过点号字符(.),来实现这样的匹配。点号字符(.)可以匹配出换行符外的任意一个字符。

转义字符()

正则表达式中的转义字符()和PHP中的大同小异,都是将特殊字符(如“,” “?” “\”等)变为普通字符。举一个IP地址的实例,用正则表达式匹配诸如127.0.0.1这样的IP地址。如果直接使用点号,格式为:[0-9]{1,3}(.[0-9]{1,3}){3}这显然不对,因为“,”可以匹配任意一个字符。这时,不仅是127.0.0.1这样的IP,连127101011这样的字符串也会被匹配出来。所以在使用“.”时,需要转义字符()。修改后面的正则表达式为:[0-9]{1,3}(.[0-9]{1,3}){3}

标签:字符,匹配,正则表达式,转义字符,规则,字符串
来源: https://blog.csdn.net/mochu7/article/details/100075496

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有